summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcomex <comexk@gmail.com>2023-07-02 00:01:11 +0200
committercomex <comexk@gmail.com>2023-07-02 00:01:11 +0200
commit98685d48e3cb9f25f6919f004ec62cadf33afad2 (patch)
tree9df2ce7f57370641589bfae7196c77b090bcbe0f
parentPR feedback + constification (diff)
parentUpdate translations (2023-07-01) (#10972) (diff)
downloadyuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.tar
yuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.tar.gz
yuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.tar.bz2
yuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.tar.lz
yuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.tar.xz
yuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.tar.zst
yuzu-98685d48e3cb9f25f6919f004ec62cadf33afad2.zip
-rw-r--r--.gitmodules43
-rw-r--r--CMakeLists.txt4
-rw-r--r--dist/languages/ca.ts1308
-rw-r--r--dist/languages/cs.ts1294
-rw-r--r--dist/languages/da.ts1280
-rw-r--r--dist/languages/de.ts1472
-rw-r--r--dist/languages/el.ts1294
-rw-r--r--dist/languages/es.ts1292
-rw-r--r--dist/languages/fr.ts1289
-rw-r--r--dist/languages/id.ts1340
-rw-r--r--dist/languages/it.ts1332
-rw-r--r--dist/languages/ja_JP.ts1342
-rw-r--r--dist/languages/ko_KR.ts1347
-rw-r--r--dist/languages/nb.ts1288
-rw-r--r--dist/languages/nl.ts1296
-rw-r--r--dist/languages/pl.ts1358
-rw-r--r--dist/languages/pt_BR.ts1332
-rw-r--r--dist/languages/pt_PT.ts1334
-rw-r--r--dist/languages/ru_RU.ts1314
-rw-r--r--dist/languages/sv.ts1284
-rw-r--r--dist/languages/tr_TR.ts1288
-rw-r--r--dist/languages/uk.ts1306
-rw-r--r--dist/languages/vi.ts1322
-rw-r--r--dist/languages/vi_VN.ts1322
-rw-r--r--dist/languages/zh_CN.ts1288
-rw-r--r--dist/languages/zh_TW.ts1606
-rw-r--r--externals/CMakeLists.txt8
m---------externals/SDL0
-rw-r--r--externals/bc_decoder/bc_decoder.cpp1522
-rw-r--r--externals/bc_decoder/bc_decoder.h43
-rw-r--r--externals/nx_tzdb/CMakeLists.txt4
m---------externals/nx_tzdb/tzdb_to_nx0
m---------externals/vma/VulkanMemoryAllocator0
-rw-r--r--externals/vma/vma.cpp8
-rw-r--r--src/android/app/build.gradle.kts4
-rw-r--r--src/android/app/src/main/AndroidManifest.xml5
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt17
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt65
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt172
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LongMessageDialogFragment.kt62
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt6
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt122
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt34
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt23
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt2
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt59
-rw-r--r--src/android/app/src/main/jni/CMakeLists.txt1
-rw-r--r--src/android/app/src/main/jni/native.cpp246
-rw-r--r--src/android/app/src/main/jni/native.h165
-rw-r--r--src/android/app/src/main/res/drawable/ic_pip_mute.xml9
-rw-r--r--src/android/app/src/main/res/drawable/ic_pip_unmute.xml9
-rw-r--r--src/android/app/src/main/res/values/strings.xml26
-rw-r--r--src/android/gradle.properties3
-rw-r--r--src/audio_core/device/audio_buffers.h8
-rw-r--r--src/audio_core/device/device_session.cpp12
-rw-r--r--src/audio_core/device/device_session.h7
-rw-r--r--src/audio_core/in/audio_in_system.cpp5
-rw-r--r--src/audio_core/out/audio_out_system.cpp4
-rw-r--r--src/audio_core/renderer/adsp/adsp.cpp1
-rw-r--r--src/audio_core/renderer/adsp/audio_renderer.cpp5
-rw-r--r--src/audio_core/renderer/adsp/command_list_processor.cpp1
-rw-r--r--src/audio_core/renderer/command/data_source/decode.cpp23
-rw-r--r--src/audio_core/renderer/command/effect/compressor.cpp8
-rw-r--r--src/audio_core/renderer/command/effect/delay.cpp14
-rw-r--r--src/audio_core/renderer/command/effect/i3dl2_reverb.cpp4
-rw-r--r--src/audio_core/renderer/command/effect/light_limiter.cpp12
-rw-r--r--src/audio_core/renderer/command/effect/reverb.cpp12
-rw-r--r--src/audio_core/renderer/command/performance/performance.cpp15
-rw-r--r--src/audio_core/renderer/command/sink/circular_buffer.cpp4
-rw-r--r--src/audio_core/renderer/command/sink/device.cpp5
-rw-r--r--src/audio_core/renderer/mix/mix_context.cpp6
-rw-r--r--src/audio_core/renderer/nodes/node_states.cpp4
-rw-r--r--src/audio_core/renderer/nodes/node_states.h2
-rw-r--r--src/audio_core/renderer/system.cpp1
-rw-r--r--src/audio_core/sink/null_sink.h2
-rw-r--r--src/audio_core/sink/sink_stream.cpp16
-rw-r--r--src/audio_core/sink/sink_stream.h5
-rw-r--r--src/common/CMakeLists.txt2
-rw-r--r--src/common/fs/fs.cpp14
-rw-r--r--src/common/fs/fs_types.h2
-rw-r--r--src/common/input.h45
-rw-r--r--src/common/ring_buffer.h3
-rw-r--r--src/common/scratch_buffer.h9
-rw-r--r--src/common/settings.cpp19
-rw-r--r--src/common/settings.h12
-rw-r--r--src/common/steady_clock.cpp5
-rw-r--r--src/common/telemetry.cpp1
-rw-r--r--src/common/thread.h2
-rw-r--r--src/common/wall_clock.cpp77
-rw-r--r--src/common/wall_clock.h89
-rw-r--r--src/common/x64/cpu_detect.cpp4
-rw-r--r--src/common/x64/cpu_detect.h1
-rw-r--r--src/common/x64/cpu_wait.cpp70
-rw-r--r--src/common/x64/native_clock.cpp166
-rw-r--r--src/common/x64/native_clock.h59
-rw-r--r--src/common/x64/rdtsc.cpp39
-rw-r--r--src/common/x64/rdtsc.h37
-rw-r--r--src/core/CMakeLists.txt1
-rw-r--r--src/core/arm/dynarmic/arm_dynarmic_32.cpp5
-rw-r--r--src/core/core_timing.cpp52
-rw-r--r--src/core/core_timing.h14
-rw-r--r--src/core/core_timing_util.h58
-rw-r--r--src/core/file_sys/patch_manager.cpp9
-rw-r--r--src/core/file_sys/vfs_concat.cpp14
-rw-r--r--src/core/file_sys/vfs_real.cpp101
-rw-r--r--src/core/file_sys/vfs_real.h22
-rw-r--r--src/core/hid/emulated_controller.cpp93
-rw-r--r--src/core/hid/emulated_controller.h28
-rw-r--r--src/core/hid/input_converter.cpp6
-rw-r--r--src/core/hle/kernel/k_scheduler.cpp5
-rw-r--r--src/core/hle/kernel/k_synchronization_object.cpp3
-rw-r--r--src/core/hle/kernel/k_thread.cpp8
-rw-r--r--src/core/hle/kernel/k_thread.h3
-rw-r--r--src/core/hle/kernel/svc/svc_info.cpp4
-rw-r--r--src/core/hle/kernel/svc/svc_ipc.cpp7
-rw-r--r--src/core/hle/kernel/svc/svc_synchronization.cpp10
-rw-r--r--src/core/hle/kernel/svc/svc_thread.cpp2
-rw-r--r--src/core/hle/kernel/svc/svc_tick.cpp10
-rw-r--r--src/core/hle/service/am/applets/applet_cabinet.cpp2
-rw-r--r--src/core/hle/service/audio/audin_u.cpp16
-rw-r--r--src/core/hle/service/audio/audout_u.cpp15
-rw-r--r--src/core/hle/service/audio/audren_u.cpp22
-rw-r--r--src/core/hle/service/audio/audren_u.h1
-rw-r--r--src/core/hle/service/audio/hwopus.cpp9
-rw-r--r--src/core/hle/service/hid/hidbus.cpp1
-rw-r--r--src/core/hle/service/nfc/common/device.cpp182
-rw-r--r--src/core/hle/service/nfc/common/device.h10
-rw-r--r--src/core/hle/service/nfc/common/device_manager.cpp11
-rw-r--r--src/core/hle/service/nfc/common/device_manager.h2
-rw-r--r--src/core/hle/service/nfc/mifare_types.h11
-rw-r--r--src/core/hle/service/nfc/nfc_interface.cpp7
-rw-r--r--src/core/hle/service/nvdrv/devices/nvdevice.h6
-rw-r--r--src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp8
-rw-r--r--src/core/hle/service/nvdrv/devices/nvdisp_disp0.h8
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp31
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h30
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp19
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl.h21
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp32
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h38
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp59
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_gpu.h36
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp6
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvdec.h8
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp15
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h12
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp8
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h10
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_vic.cpp6
-rw-r--r--src/core/hle/service/nvdrv/devices/nvhost_vic.h8
-rw-r--r--src/core/hle/service/nvdrv/devices/nvmap.cpp20
-rw-r--r--src/core/hle/service/nvdrv/devices/nvmap.h20
-rw-r--r--src/core/hle/service/nvdrv/nvdrv.cpp8
-rw-r--r--src/core/hle/service/nvdrv/nvdrv.h8
-rw-r--r--src/core/hle/service/nvdrv/nvdrv_interface.cpp24
-rw-r--r--src/core/hle/service/nvdrv/nvdrv_interface.h3
-rw-r--r--src/core/hle/service/nvnflinger/nvnflinger.cpp15
-rw-r--r--src/core/hle/service/nvnflinger/nvnflinger.h3
-rw-r--r--src/core/hle/service/nvnflinger/parcel.h7
-rw-r--r--src/core/hle/service/server_manager.cpp7
-rw-r--r--src/core/hle/service/server_manager.h4
-rw-r--r--src/core/hle/service/time/clock_types.h13
-rw-r--r--src/core/hle/service/time/standard_steady_clock_core.cpp2
-rw-r--r--src/core/hle/service/time/tick_based_steady_clock_core.cpp2
-rw-r--r--src/core/hle/service/time/time.cpp4
-rw-r--r--src/core/hle/service/time/time_sharedmemory.cpp5
-rw-r--r--src/core/hle/service/time/time_zone_manager.cpp6
-rw-r--r--src/input_common/drivers/joycon.cpp158
-rw-r--r--src/input_common/drivers/joycon.h19
-rw-r--r--src/input_common/drivers/mouse.cpp99
-rw-r--r--src/input_common/drivers/mouse.h2
-rw-r--r--src/input_common/drivers/sdl_driver.cpp32
-rw-r--r--src/input_common/drivers/virtual_amiibo.cpp130
-rw-r--r--src/input_common/drivers/virtual_amiibo.h16
-rw-r--r--src/input_common/helpers/joycon_driver.cpp245
-rw-r--r--src/input_common/helpers/joycon_driver.h43
-rw-r--r--src/input_common/helpers/joycon_protocol/calibration.cpp53
-rw-r--r--src/input_common/helpers/joycon_protocol/calibration.h15
-rw-r--r--src/input_common/helpers/joycon_protocol/common_protocol.cpp110
-rw-r--r--src/input_common/helpers/joycon_protocol/common_protocol.h44
-rw-r--r--src/input_common/helpers/joycon_protocol/generic_functions.cpp52
-rw-r--r--src/input_common/helpers/joycon_protocol/generic_functions.h41
-rw-r--r--src/input_common/helpers/joycon_protocol/irs.cpp70
-rw-r--r--src/input_common/helpers/joycon_protocol/irs.h22
-rw-r--r--src/input_common/helpers/joycon_protocol/joycon_types.h76
-rw-r--r--src/input_common/helpers/joycon_protocol/nfc.cpp531
-rw-r--r--src/input_common/helpers/joycon_protocol/nfc.h74
-rw-r--r--src/input_common/helpers/joycon_protocol/poller.cpp4
-rw-r--r--src/input_common/helpers/joycon_protocol/poller.h4
-rw-r--r--src/input_common/helpers/joycon_protocol/ringcon.cpp45
-rw-r--r--src/input_common/helpers/joycon_protocol/ringcon.h14
-rw-r--r--src/input_common/helpers/joycon_protocol/rumble.cpp5
-rw-r--r--src/input_common/helpers/joycon_protocol/rumble.h8
-rw-r--r--src/input_common/input_engine.h34
-rw-r--r--src/input_common/input_poller.cpp24
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm.cpp2
-rw-r--r--src/shader_recompiler/backend/glsl/glsl_emit_context.cpp2
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv.cpp2
-rw-r--r--src/shader_recompiler/backend/spirv/spirv_emit_context.cpp2
-rw-r--r--src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp4
-rw-r--r--src/shader_recompiler/runtime_info.h3
-rw-r--r--src/shader_recompiler/shader_info.h1
-rw-r--r--src/video_core/CMakeLists.txt8
-rw-r--r--src/video_core/buffer_cache/buffer_cache.h4
-rw-r--r--src/video_core/buffer_cache/buffer_cache_base.h4
-rw-r--r--src/video_core/cdma_pusher.h1
-rw-r--r--src/video_core/dma_pusher.h8
-rw-r--r--src/video_core/engines/maxwell_dma.cpp40
-rw-r--r--src/video_core/gpu.cpp13
-rw-r--r--src/video_core/host1x/codecs/h264.cpp4
-rw-r--r--src/video_core/host_shaders/CMakeLists.txt1
-rw-r--r--src/video_core/host_shaders/opengl_lmem_warmup.comp47
-rw-r--r--src/video_core/memory_manager.cpp17
-rw-r--r--src/video_core/memory_manager.h15
-rw-r--r--src/video_core/renderer_opengl/gl_compute_pipeline.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_compute_pipeline.h5
-rw-r--r--src/video_core/renderer_opengl/gl_device.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_device.h5
-rw-r--r--src/video_core/renderer_opengl/gl_graphics_pipeline.cpp1
-rw-r--r--src/video_core/renderer_opengl/gl_graphics_pipeline.h5
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer.cpp6
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp4
-rw-r--r--src/video_core/renderer_opengl/gl_shader_manager.cpp13
-rw-r--r--src/video_core/renderer_opengl/gl_shader_manager.h3
-rw-r--r--src/video_core/renderer_vulkan/blit_image.cpp3
-rw-r--r--src/video_core/renderer_vulkan/maxwell_to_vk.cpp20
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.cpp34
-rw-r--r--src/video_core/renderer_vulkan/renderer_vulkan.h5
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.cpp18
-rw-r--r--src/video_core/renderer_vulkan/vk_blit_screen.h3
-rw-r--r--src/video_core/renderer_vulkan/vk_buffer_cache.cpp86
-rw-r--r--src/video_core/renderer_vulkan/vk_buffer_cache.h2
-rw-r--r--src/video_core/renderer_vulkan/vk_fsr.cpp4
-rw-r--r--src/video_core/renderer_vulkan/vk_fsr.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp5
-rw-r--r--src/video_core/renderer_vulkan/vk_master_semaphore.cpp22
-rw-r--r--src/video_core/renderer_vulkan/vk_master_semaphore.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp22
-rw-r--r--src/video_core/renderer_vulkan/vk_present_manager.cpp4
-rw-r--r--src/video_core/renderer_vulkan/vk_present_manager.h1
-rw-r--r--src/video_core/renderer_vulkan/vk_rasterizer.cpp23
-rw-r--r--src/video_core/renderer_vulkan/vk_smaa.cpp39
-rw-r--r--src/video_core/renderer_vulkan/vk_smaa.h2
-rw-r--r--src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp115
-rw-r--r--src/video_core/renderer_vulkan/vk_staging_buffer_pool.h4
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.cpp54
-rw-r--r--src/video_core/renderer_vulkan/vk_texture_cache.h3
-rw-r--r--src/video_core/renderer_vulkan/vk_turbo_mode.cpp10
-rw-r--r--src/video_core/shader_cache.cpp4
-rw-r--r--src/video_core/surface.cpp22
-rw-r--r--src/video_core/surface.h2
-rw-r--r--src/video_core/texture_cache/decode_bc.cpp129
-rw-r--r--src/video_core/texture_cache/decode_bc.h (renamed from src/video_core/texture_cache/decode_bc4.h)6
-rw-r--r--src/video_core/texture_cache/decode_bc4.cpp96
-rw-r--r--src/video_core/texture_cache/image_base.h5
-rw-r--r--src/video_core/texture_cache/texture_cache.h53
-rw-r--r--src/video_core/texture_cache/texture_cache_base.h14
-rw-r--r--src/video_core/texture_cache/util.cpp72
-rw-r--r--src/video_core/texture_cache/util.h31
-rw-r--r--src/video_core/textures/bcn.cpp1
-rw-r--r--src/video_core/textures/bcn.h9
-rw-r--r--src/video_core/transform_feedback.cpp8
-rw-r--r--src/video_core/transform_feedback.h2
-rw-r--r--src/video_core/vulkan_common/vulkan_debug_callback.cpp40
-rw-r--r--src/video_core/vulkan_common/vulkan_debug_callback.h4
-rw-r--r--src/video_core/vulkan_common/vulkan_device.cpp44
-rw-r--r--src/video_core/vulkan_common/vulkan_device.h66
-rw-r--r--src/video_core/vulkan_common/vulkan_instance.cpp58
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.cpp173
-rw-r--r--src/video_core/vulkan_common/vulkan_memory_allocator.h28
-rw-r--r--src/video_core/vulkan_common/vulkan_wrapper.cpp64
-rw-r--r--src/video_core/vulkan_common/vulkan_wrapper.h170
-rw-r--r--src/yuzu/CMakeLists.txt3
-rw-r--r--src/yuzu/bootmanager.cpp6
-rw-r--r--src/yuzu/bootmanager.h7
-rw-r--r--src/yuzu/configuration/config.cpp37
-rw-r--r--src/yuzu/configuration/config.h2
-rw-r--r--src/yuzu/configuration/configure_general.cpp6
-rw-r--r--src/yuzu/configuration/configure_general.ui7
-rw-r--r--src/yuzu/configuration/configure_graphics.cpp2
-rw-r--r--src/yuzu/configuration/configure_graphics_advanced.cpp10
-rw-r--r--src/yuzu/configuration/configure_graphics_advanced.h1
-rw-r--r--src/yuzu/configuration/configure_graphics_advanced.ui10
-rw-r--r--src/yuzu/configuration/configure_input_advanced.cpp7
-rw-r--r--src/yuzu/configuration/configure_input_advanced.ui37
-rw-r--r--src/yuzu/configuration/configure_input_player.cpp16
-rw-r--r--src/yuzu/configuration/configure_input_player.ui96
-rw-r--r--src/yuzu/configuration/configure_mouse_panning.cpp79
-rw-r--r--src/yuzu/configuration/configure_mouse_panning.h35
-rw-r--r--src/yuzu/configuration/configure_mouse_panning.ui238
-rw-r--r--src/yuzu/configuration/configure_ringcon.cpp3
-rw-r--r--src/yuzu/configuration/configure_ringcon.ui2
-rw-r--r--src/yuzu/main.cpp82
-rw-r--r--src/yuzu/main.h2
-rw-r--r--src/yuzu/uisettings.h2
-rw-r--r--src/yuzu/vk_device_info.cpp13
-rw-r--r--src/yuzu/vk_device_info.h4
-rw-r--r--src/yuzu_cmd/default_ini.h26
300 files changed, 24014 insertions, 17175 deletions
diff --git a/.gitmodules b/.gitmodules
index 89f2ad924..9f96b70be 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -2,35 +2,35 @@
# SPDX-License-Identifier: GPL-2.0-or-later
[submodule "enet"]
- path = externals/enet
- url = https://github.com/lsalzman/enet.git
+ path = externals/enet
+ url = https://github.com/lsalzman/enet.git
[submodule "inih"]
- path = externals/inih/inih
- url = https://github.com/benhoyt/inih.git
+ path = externals/inih/inih
+ url = https://github.com/benhoyt/inih.git
[submodule "cubeb"]
- path = externals/cubeb
- url = https://github.com/mozilla/cubeb.git
+ path = externals/cubeb
+ url = https://github.com/mozilla/cubeb.git
[submodule "dynarmic"]
- path = externals/dynarmic
- url = https://github.com/MerryMage/dynarmic.git
+ path = externals/dynarmic
+ url = https://github.com/merryhime/dynarmic.git
[submodule "libusb"]
path = externals/libusb/libusb
url = https://github.com/libusb/libusb.git
[submodule "discord-rpc"]
- path = externals/discord-rpc
- url = https://github.com/yuzu-emu/discord-rpc.git
+ path = externals/discord-rpc
+ url = https://github.com/yuzu-emu/discord-rpc.git
[submodule "Vulkan-Headers"]
- path = externals/Vulkan-Headers
- url = https://github.com/KhronosGroup/Vulkan-Headers.git
+ path = externals/Vulkan-Headers
+ url = https://github.com/KhronosGroup/Vulkan-Headers.git
[submodule "sirit"]
- path = externals/sirit
- url = https://github.com/yuzu-emu/sirit
+ path = externals/sirit
+ url = https://github.com/yuzu-emu/sirit.git
[submodule "mbedtls"]
- path = externals/mbedtls
- url = https://github.com/yuzu-emu/mbedtls
+ path = externals/mbedtls
+ url = https://github.com/yuzu-emu/mbedtls.git
[submodule "xbyak"]
- path = externals/xbyak
- url = https://github.com/herumi/xbyak.git
+ path = externals/xbyak
+ url = https://github.com/herumi/xbyak.git
[submodule "opus"]
path = externals/opus/opus
url = https://github.com/xiph/opus.git
@@ -45,13 +45,16 @@
url = https://github.com/FFmpeg/FFmpeg.git
[submodule "vcpkg"]
path = externals/vcpkg
- url = https://github.com/Microsoft/vcpkg.git
+ url = https://github.com/microsoft/vcpkg.git
[submodule "cpp-jwt"]
path = externals/cpp-jwt
url = https://github.com/arun11299/cpp-jwt.git
[submodule "libadrenotools"]
path = externals/libadrenotools
- url = https://github.com/bylaws/libadrenotools
+ url = https://github.com/bylaws/libadrenotools.git
[submodule "tzdb_to_nx"]
path = externals/nx_tzdb/tzdb_to_nx
url = https://github.com/lat9nq/tzdb_to_nx.git
+[submodule "VulkanMemoryAllocator"]
+ path = externals/vma/VulkanMemoryAllocator
+ url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51b35d31a..7e74733d6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -504,7 +504,7 @@ if (ENABLE_SDL2)
if (YUZU_USE_BUNDLED_SDL2)
# Detect toolchain and platform
if ((MSVC_VERSION GREATER_EQUAL 1920 AND MSVC_VERSION LESS 1940) AND ARCHITECTURE_x86_64)
- set(SDL2_VER "SDL2-2.0.18")
+ set(SDL2_VER "SDL2-2.28.0")
else()
message(FATAL_ERROR "No bundled SDL2 binaries for your toolchain. Disable YUZU_USE_BUNDLED_SDL2 and provide your own.")
endif()
@@ -524,7 +524,7 @@ if (ENABLE_SDL2)
elseif (YUZU_USE_EXTERNAL_SDL2)
message(STATUS "Using SDL2 from externals.")
else()
- find_package(SDL2 2.0.18 REQUIRED)
+ find_package(SDL2 2.26.4 REQUIRED)
endif()
endif()
diff --git a/dist/languages/ca.ts b/dist/languages/ca.ts
index 7964da0d2..770b80a96 100644
--- a/dist/languages/ca.ts
+++ b/dist/languages/ca.ts
@@ -249,42 +249,42 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="124"/>
<source>Yes The game gets past the intro/menu and into gameplay</source>
- <translation type="unfinished"/>
+ <translation>Sí El joc supera la introducció/menú i entra en la part jugable.</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="131"/>
<source>No The game crashes or freezes while loading or using the menu</source>
- <translation type="unfinished"/>
+ <translation>No El joc pot fallar o es bloqueja mentre es carrega o s&apos;utilitza el menú</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="143"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game reach gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;El joc arriba a ser jugable?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="176"/>
<source>Yes The game works without crashes</source>
- <translation type="unfinished"/>
+ <translation>Sí El joc funciona sense errors</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="183"/>
<source>No The game crashes or freezes during gameplay</source>
- <translation type="unfinished"/>
+ <translation>No El joc pot fallar o es pot bloquejar durant la part jugable.</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="195"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game work without crashing, freezing or locking up during gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Funciona el joc sense fallar, bloquejar-se o en bucle durant la part jugable?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="228"/>
<source>Yes The game can be finished without any workarounds</source>
- <translation type="unfinished"/>
+ <translation>Sí El joc es pot acabar sense ninguna configuració extra especifica . </translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="235"/>
<source>No The game can&apos;t progress past a certain area</source>
- <translation type="unfinished"/>
+ <translation>No El joc no pot avançar més enllà d&apos;una zona determinada</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="247"/>
@@ -294,12 +294,12 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="280"/>
<source>Major The game has major graphical errors</source>
- <translation type="unfinished"/>
+ <translation>Important El joc té errors gràfics importants</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="287"/>
<source>Minor The game has minor graphical errors</source>
- <translation type="unfinished"/>
+ <translation>Menys important El joc té errors gràfics menors</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="294"/>
@@ -1126,78 +1126,78 @@ This would ban both their forum username and their IP address.</source>
<translation>Configuració de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Àudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Depuració</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Sistema de fitxers</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Gràfics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GràficsAvançat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Tecles d&apos;accés ràpid</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Controls</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Perfils</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Xarxa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Llista de jocs</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1391,17 +1391,22 @@ This would ban both their forum username and their IP address.</source>
<translation>Ocultar el cursor del ratolí en cas d&apos;inactivitat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Reiniciar tots els paràmetres</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Això restablirà tota la configuració i eliminarà totes les configuracions dels jocs. No eliminarà ni els directoris de jocs, ni els perfils, ni els perfils dels controladors. Procedir?</translation>
</message>
@@ -1689,43 +1694,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Color de fons:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, només NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1849,37 +1854,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtrat anisotròpic:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automàtic</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Valor predeterminat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2262,7 +2287,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2329,22 +2354,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Activar desplaçament del ratolí</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensibilitat del ratolí</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Moviment / Tàctil</translation>
</message>
@@ -2456,7 +2466,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Palanca esquerra</translation>
</message>
@@ -2550,14 +2560,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2576,7 +2586,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Més</translation>
</message>
@@ -2589,15 +2599,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2654,247 +2664,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Palanca dreta</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configurar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Esborrar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[no establert]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Botó d&apos;inversió</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Botó commutador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Invertir eixos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Configurar llindar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Esculli un valor entre 0% i 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Configurar llindar giroscopi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Configuració de palanca analògica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Després de prémer D&apos;acord, primer moveu el joystick horitzontalment i després verticalment.
Per invertir els eixos, primer moveu el joystick verticalment i després horitzontalment.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Centrar eixos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Zona morta: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Rang del modificador: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Controlador Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joycons duals</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon esquerra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon dret</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Portàtil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Controlador de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Controlador NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Controlador SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Controlador N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Inici / Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Palanca de control</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Sacseja!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[esperant]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nou perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Introdueixi un nom de perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Crear perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>El nom de perfil introduït no és vàlid!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Error al crear el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Eliminar perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Error al eliminar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Carregar perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Error al carregar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Guardar perfil d&apos;entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Error al guardar el perfil d&apos;entrada &quot;%1&quot;</translation>
</message>
@@ -3074,6 +3094,81 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Valor predeterminat</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3149,47 +3244,47 @@ Per invertir els eixos, primer moveu el joystick verticalment i després horitzo
<translation>Desenvolupador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Complements</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Gràfics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Gràfics avanç.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Àudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Propietats</translation>
</message>
@@ -3391,7 +3486,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3428,7 +3523,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3495,12 +3590,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[esperant]</translation>
</message>
@@ -4610,560 +4710,575 @@ Arrossegui els punts per a canviar la posició, o faci doble clic a les cel·les
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Es recullen dades anònimes&lt;/a&gt; per ajudar a millorar yuzu. &lt;br/&gt;&lt;br/&gt;Desitja compartir les seves dades d&apos;ús amb nosaltres?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Carregant Web applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Desactivar el Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Desactivar l&apos;Applet Web pot provocar comportaments indefinits i només hauria d&apos;utilitzar-se amb Super Mario 3D All-Stars. Estàs segur de que vols desactivar l&apos;Applet Web?
(Això pot ser reactivat als paràmetres Debug.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>La quantitat de shaders que s&apos;estan compilant actualment</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>El multiplicador d&apos;escala de resolució seleccionat actualment.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocitat d&apos;emulació actual. Valors superiors o inferiors a 100% indiquen que l&apos;emulació s&apos;està executant més ràpidament o més lentament que a la Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quants fotogrames per segon està mostrant el joc actualment. Això variarà d&apos;un joc a un altre i d&apos;una escena a una altra.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Temps que costa emular un fotograma de la Switch, sense tenir en compte la limitació de fotogrames o la sincronització vertical. Per a una emulació òptima, aquest valor hauria de ser com a màxim de 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Esborrar arxius recents</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu està executant un joc</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Advertència format del joc desfasat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Està utilitzant el format de directori de ROM deconstruït per a aquest joc, que és un format desactualitzat que ha sigut reemplaçat per altres, com NCA, NAX, XCI o NSP. Els directoris de ROM deconstruïts careixen d&apos;icones, metadades i suport d&apos;actualitzacions.&lt;br&gt;&lt;br&gt;Per a obtenir una explicació dels diversos formats de Switch que suporta yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;faci una ullada a la nostra wiki&lt;/a&gt;. Aquest missatge no es tornarà a mostrar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Error carregant la ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>El format de la ROM no està suportat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>S&apos;ha produït un error inicialitzant el nucli de vídeo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu ha trobat un error mentre executava el nucli de vídeo. Això sol ser causat per controladors de la GPU obsolets, inclosos els integrats. Si us plau, consulti el registre per a més detalls. Per obtenir més informació sobre com accedir al registre, consulti la següent pàgina: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Com carregar el fitxer de registre&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Error al carregar la ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Si us plau, segueixi &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guia d&apos;inici de yuzu&lt;/a&gt; per a bolcar de nou els seus fitxers.&lt;br&gt;Pot consultar la wiki de yuzu wiki&lt;/a&gt; o el Discord de yuzu&lt;/a&gt; per obtenir ajuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>S&apos;ha produït un error desconegut. Si us plau, consulti el registre per a més detalls.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
- <translation type="unfinished"/>
+ <translation>S&apos;està tancant el programari</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Dades de partides guardades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Dades de mods</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Error obrint la carpeta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>La carpeta no existeix!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Error obrint la cache transferible de shaders</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>No s&apos;ha pogut crear el directori de la cache dels shaders per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Eliminar entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>S&apos;ha eliminat correctament</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>S&apos;ha eliminat correctament el joc base instal·lat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>El joc base no està instal·lat a la NAND i no pot ser eliminat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>S&apos;ha eliminat correctament l&apos;actualització instal·lada.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>No hi ha cap actualització instal·lada per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>No hi ha cap DLC instal·lat per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>S&apos;ha eliminat correctament %1 DLC instal·lat/s.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Desitja eliminar la cache transferible de shaders d&apos;OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Desitja eliminar la cache transferible de shaders de Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Desitja eliminar totes les caches transferibles de shaders?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Desitja eliminar la configuració personalitzada del joc?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Eliminar arxiu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Error eliminant la cache transferible de shaders</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>No existeix una cache de shaders per aquest títol.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>S&apos;ha eliminat correctament la cache transferible de shaders.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>No s&apos;ha pogut eliminar la cache transferible de shaders.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Error al eliminar les caches de shaders transferibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Caches de shaders transferibles eliminades correctament.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>No s&apos;ha pogut eliminar el directori de caches de shaders transferibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Error eliminant la configuració personalitzada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>No existeix una configuració personalitzada per aquest joc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>S&apos;ha eliminat correctament la configuració personalitzada del joc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>No s&apos;ha pogut eliminar la configuració personalitzada del joc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>La extracció de RomFS ha fallat!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>S&apos;ha produït un error copiant els arxius RomFS o l&apos;usuari ha cancel·lat la operació.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Esquelet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Seleccioni el mode de bolcat de RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Si us plau, seleccioni la forma en que desitja bolcar la RomFS.&lt;br&gt;Completa copiarà tots els arxius al nou directori mentre que&lt;br&gt;esquelet només crearà l&apos;estructura de directoris.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>No hi ha suficient espai lliure a %1 per extreure el RomFS. Si us plau, alliberi espai o esculli un altre directori de bolcat a Emulació &gt; Configuració &gt; Sistema &gt; Sistema d&apos;arxius &gt; Carpeta arrel de bolcat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extraient RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Cancel·la</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extracció de RomFS completada correctament!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>L&apos;operació s&apos;ha completat correctament.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Error obrint %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Seleccionar directori</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Propietats</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Les propietats del joc no s&apos;han pogut carregar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Executable de Switch (%1);;Tots els Arxius (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Carregar arxiu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Obrir el directori de la ROM extreta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Directori seleccionat invàlid</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>El directori que ha seleccionat no conté un arxiu &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Arxiu de Switch Instal·lable (*.nca *.nsp *.xci);;Arxiu de Continguts Nintendo (*.nca);;Paquet d&apos;enviament Nintendo (*.nsp);;Imatge de Cartutx NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Instal·lar arxius</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n arxiu(s) restants</numerusform><numerusform>%n arxiu(s) restants</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instal·lant arxiu &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Resultats instal·lació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Per evitar possibles conflictes, no recomanem als usuaris que instal·lin jocs base a la NAND.
Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i DLCs.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n nou(s) arxiu(s) s&apos;ha(n) instal·lat
@@ -5171,7 +5286,7 @@ Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n arxiu(s) s&apos;han sobreescrit
@@ -5179,7 +5294,7 @@ Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n arxiu(s) no s&apos;han instal·lat
@@ -5187,388 +5302,312 @@ Si us plau, utilitzi aquesta funció només per a instal·lar actualitzacions i
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Aplicació del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Arxiu del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Actualització de l&apos;aplicació del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Paquet de firmware (Tipus A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Paquet de firmware (Tipus B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Actualització de joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC del joc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Títol delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Seleccioni el tipus d&apos;instal·lació NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Seleccioni el tipus de títol que desitja instal·lar aquest NCA com a:
(En la majoria dels casos, el valor predeterminat &apos;Joc&apos; està bé.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Ha fallat la instal·lació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>El tipus de títol seleccionat per el NCA és invàlid.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Arxiu no trobat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Arxiu &quot;%1&quot; no trobat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>D&apos;acord</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Falta el compte de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Per tal d&apos;enviar un cas de prova de compatibilitat de joc, ha de vincular el seu compte de yuzu.&lt;br&gt;&lt;br/&gt;Per a vincular el seu compte de yuzu, vagi a Emulació &amp; gt; Configuració &amp; gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Error obrint URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>No es pot obrir la URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Gravació TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Sobreescriure l&apos;arxiu del jugador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Configuració invàlida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>El controlador del mode portàtil no es pot fer servir en el mode acoblat. Es seleccionarà el controlador Pro en el seu lloc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>L&apos;amiibo actual ha sigut eliminat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>El joc actual no està buscant amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Arxiu Amiibo (%1);; Tots els Arxius (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Carregar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Error al carregar les dades d&apos;Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Captura de pantalla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Imatge PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Estat TAS: executant %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Estat TAS: gravant %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Estat TAS: inactiu %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Estat TAS: invàlid</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar l&apos;execució</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Iniciar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Parar g&amp;ravació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>G&amp;ravar</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Construint: %n shader(s)</numerusform><numerusform>Construint: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Velocitat: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Velocitat: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Joc: %1 FPS (desbloquejat)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Joc: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Fotograma: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU ALTA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREMA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>ERROR GPU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>MÉS PROPER</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICÚBIC</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIÀ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>SENSE AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmi la clau de rederivació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5585,37 +5624,37 @@ i opcionalment faci còpies de seguretat.
Això eliminarà els arxius de les claus generats automàticament i tornarà a executar el mòdul de derivació de claus.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Falten fusibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - Falta BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Falta BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - Falta PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Falten components de derivació</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Falten les claus d&apos;encriptació. &lt;br&gt;Si us plau, segueixi &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guia ràpida de yuzu&lt;/a&gt; per a obtenir totes les seves claus, firmware i jocs.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5624,49 +5663,49 @@ Això pot prendre fins a un minut depenent
del rendiment del seu sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Derivant claus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Seleccioni el destinatari per a bolcar el RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Si us plau, seleccioni quin RomFS desitja bolcar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Està segur de que vol tancar yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Està segur de que vol aturar l&apos;emulació? Qualsevol progrés no guardat es perdrà.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5674,48 +5713,143 @@ Would you like to bypass this and exit anyway?</source>
Desitja tancar-lo de totes maneres?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Cap</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilineal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicúbic</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussià</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Acoblada</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Portàtil</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL no disponible!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu no ha estat compilat amb suport per OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Error al inicialitzar OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>La seva GPU no suporta OpenGL, o no té instal·lat els últims controladors gràfics.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Error inicialitzant OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>La seva GPU no suporta OpenGL 4.6, o no té instal·lats els últims controladors gràfics.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>És possible que la seva GPU no suporti una o més extensions necessàries d&apos;OpenGL. Si us plau, asseguris de tenir els últims controladors de la tarjeta gràfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensions no suportades:&lt;br&gt;%2</translation>
</message>
@@ -6068,138 +6202,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Captura de pantalla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Pantalla Completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Carregar arxiu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6938,30 +7072,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[no establert]</translation>
</message>
@@ -6972,14 +7106,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Eix %1%2</translation>
</message>
@@ -6990,320 +7124,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[desconegut]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Esquerra</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Dreta</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Avall</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Amunt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Inici</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Cercle</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Creu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Cuadrat</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triangle</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Compartir</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opcions</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[indefinit]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[invàlid]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Rotació %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eix %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixos %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Moviment %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Botó %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[sense ús]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Més</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Menys</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Inici</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Captura</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Tàctil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Roda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Enrere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Endavant</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Tasca</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/cs.ts b/dist/languages/cs.ts
index 486a812d9..a932dabed 100644
--- a/dist/languages/cs.ts
+++ b/dist/languages/cs.ts
@@ -1118,78 +1118,78 @@ Tato možnost zlepšuje rychlost díky závislosti na sémantice cmpxchg pro zaj
<translation>Nastavení yuzu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Zvuk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Ladění</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Souborový systém</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Obecné</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GrafickyPokročilé</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Zkratky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Ovládání</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profily</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Síť</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Systém</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Seznam her</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1383,17 +1383,22 @@ Tato možnost zlepšuje rychlost díky závislosti na sémantice cmpxchg pro zaj
<translation>Skrýt myš při neaktivitě</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Resetovat všechna nastavení</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Toto vyresetuje všechna nastavení a odstraní konfigurace pro jednotlivé hry. Složky s hrami a profily zůstanou zachovány. Přejete si pokračovat?</translation>
</message>
@@ -1552,7 +1557,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="402"/>
<source>1X (720p/1080p)</source>
- <translation type="unfinished"/>
+ <translation>1X (720p/1080p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="407"/>
@@ -1637,12 +1642,12 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="540"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="545"/>
<source>SMAA</source>
- <translation type="unfinished"/>
+ <translation>SMAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="601"/>
@@ -1681,43 +1686,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Barva Pozadí:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1841,37 +1846,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anizotropní filtrování:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Výchozí</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2254,7 +2279,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Nastavení</translation>
</message>
@@ -2321,22 +2346,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Povolit naklánění myší</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Citlivost myši</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Pohyb / Dotyk</translation>
</message>
@@ -2448,7 +2458,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Levá Páčka</translation>
</message>
@@ -2542,14 +2552,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2568,7 +2578,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -2581,15 +2591,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2646,247 +2656,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Pravá páčka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Nastavení</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Vyčistit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[nenastaveno]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Přepnout tlačítko</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Převrátit osy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Namapovat analogovou páčku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Po stisknutí OK nejprve posuňte joystick horizontálně, poté vertikálně.
Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontálně.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Deadzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Rozsah modifikátoru: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Dual Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Levý Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Pravý Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>V rukou</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Ovladač GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Control Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Shake!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[čekání]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nový profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Zadejte název profilu:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Vytvořit profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Zadaný název profilu není platný!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se vytvořit profil vstupu &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Odstranit profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se odstranit profil vstupu &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Načíst profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se načíst profil vstupu &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Uložit profil vstupu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Nepodařilo se uložit profil vstupu &quot;%1&quot;</translation>
</message>
@@ -3066,6 +3086,81 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Výchozí</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3141,47 +3236,47 @@ Pro převrácení os nejprve posuňte joystick vertikálně, poté horizontáln
<translation>Vývojář</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Doplňky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Obecné</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Systém</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Pokroč. grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Zvuk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Vlastnosti</translation>
</message>
@@ -3383,7 +3478,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3420,7 +3515,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3487,12 +3582,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[čekání]</translation>
</message>
@@ -4602,958 +4702,897 @@ Táhněte body pro změnu pozice nebo dvojitě klikněte na buňky tabulky pro z
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymní data jsou sbírána&lt;/a&gt; pro vylepšení yuzu. &lt;br/&gt;&lt;br/&gt;Chcete s námi sdílet anonymní data?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Načítání Web Appletu...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Zakázat Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Počet aktuálně sestavovaných shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Aktuální emulační rychlost. Hodnoty vyšší než 100% indikují, že emulace běží rychleji nebo pomaleji než na Switchi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Kolik snímků za sekundu aktuálně hra zobrazuje. Tohle závisí na hře od hry a scény od scény.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Čas potřebný na emulaci framu scény, nepočítá se limit nebo v-sync. Pro plnou rychlost by se tohle mělo pohybovat okolo 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Vymazat poslední soubory</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Pokračovat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pauza</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Varování Zastaralý Formát Hry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Používáte rozbalený formát hry, který je zastaralý a byl nahrazen jinými jako NCA, NAX, XCI, nebo NSP. Rozbalená ROM nemá ikony, metadata, a podporu updatů.&lt;br&gt;&lt;br&gt;Pro vysvětlení všech možných podporovaných typů, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;zkoukni naší wiki&lt;/a&gt;. Tato zpráva se nebude znova zobrazovat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Chyba při načítání ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Tento formát ROM není podporován.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Nastala chyba při inicializaci jádra videa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Chyba při načítání ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Pro extrakci souborů postupujte podle &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;rychlého průvodce yuzu&lt;/a&gt;. Nápovědu naleznete na &lt;br&gt;wiki&lt;/a&gt; nebo na Discordu&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Nastala chyba. Koukni do logu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Uložit data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Módovat Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Chyba otevírání složky %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Složka neexistuje!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Chyba při otevírání přenositelné mezipaměti shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Odebrat položku</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Úspěšně odebráno</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Úspěšně odebrán nainstalovaný základ hry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Základ hry není nainstalovaný na NAND a nemůže být odstraněn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Úspěšně odebrána nainstalovaná aktualizace.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Není nainstalovaná žádná aktualizace pro tento titul.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Není nainstalované žádné DLC pro tento titul.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Úspěšně odstraněno %1 nainstalovaných DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Odstranit vlastní konfiguraci hry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Odstranit soubor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Chyba při odstraňování přenositelné mezipaměti shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Mezipaměť shaderů pro tento titul neexistuje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Přenositelná mezipaměť shaderů úspěšně odstraněna</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Nepodařilo se odstranit přenositelnou mezipaměť shaderů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Chyba při odstraňování vlastní konfigurace hry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Vlastní konfigurace hry pro tento titul neexistuje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Úspěšně odstraněna vlastní konfigurace hry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Nepodařilo se odstranit vlastní konfiguraci hry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Extrakce RomFS se nepovedla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Nastala chyba při kopírování RomFS souborů, nebo uživatel operaci zrušil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Plný</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Kostra</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Vyber RomFS Dump Mode</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Vyber jak by si chtěl RomFS vypsat.&lt;br&gt;Plné zkopíruje úplně všechno, ale&lt;br&gt;kostra zkopíruje jen strukturu složky.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extrahuji RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Zrušit</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extrakce RomFS se povedla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Operace byla dokončena úspěšně.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Chyba při otevírání %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Vybraná Složka</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Vlastnosti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Herní vlastnosti nemohly být načteny.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Executable (%1);;Všechny soubory (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Načíst soubor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Otevřít složku s extrahovanou ROM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Vybraná složka je neplatná</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Složka kterou jste vybrali neobsahuje soubor &quot;main&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Instalovatelný soubor pro Switch (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Instalovat Soubory</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalování souboru &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Výsledek instalace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Abychom předešli možným konfliktům, nedoporučujeme uživatelům instalovat základní hry na paměť NAND.
Tuto funkci prosím používejte pouze k instalaci aktualizací a DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Systémová Aplikace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Systémový archív</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Systémový Update Aplikace</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware-ový baliček (Typu A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-ový baliček (Typu B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Hra</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Update Hry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Herní DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta Title</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Vyberte typ instalace NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vyberte typ title-u, který chcete nainstalovat tenhle NCA jako:
(Většinou základní &quot;game&quot; stačí.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Chyba v instalaci</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Tento typ pro tento NCA není platný.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Soubor nenalezen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Soubor &quot;%1&quot; nenalezen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Chybí účet yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Pro přidání recenze kompatibility je třeba mít účet yuzu&lt;br&gt;&lt;br/&gt;Pro nalinkování yuzu účtu jdi do Emulace &amp;gt; Konfigurace &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Chyba při otevírání URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Nelze otevřít URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Zjištěno neplatné nastavení</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Ruční ovladač nelze používat v dokovacím režimu. Bude vybrán ovladač Pro Controller.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Soubor Amiibo (%1);; Všechny Soubory (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Načíst Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Chyba načítání Amiiba</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Pořídit Snímek Obrazovky</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG Image (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Rychlost: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Rychlost: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Hra: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMÁLNÍ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU VYSOKÝ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTRÉMNÍ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU ERROR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Potvďte Rederivaci Klíčů</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5570,37 +5609,37 @@ a udělejte si zálohu.
Toto vymaže věechny vaše automaticky generované klíče a znova spustí modul derivace klíčů.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Chybí Fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Chybí BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Chybí BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - Chybí PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Chybé odvozené komponenty</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5609,49 +5648,49 @@ Tohle může zabrat až minutu
podle výkonu systému.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Derivuji Klíče</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Vyberte Cíl vypsaní RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vyberte, kterou RomFS chcete vypsat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Jste si jist, že chcete zavřít yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Jste si jist, že chcete ukončit emulaci? Jakýkolic neuložený postup bude ztracen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5659,48 +5698,143 @@ Would you like to bypass this and exit anyway?</source>
Opravdu si přejete ukončit tuto aplikaci?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Žádné</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Zadokovaná</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Příruční</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL není k dispozici!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu nebylo sestaveno s OpenGL podporou.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Chyba při inicializaci OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL nebo nejsou nainstalovány nejnovější ovladače.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Chyba při inicializaci OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL 4.6 nebo nejsou nainstalovány nejnovější ovladače.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Vaše grafická karta pravděpodobně nepodporuje jedno nebo více rozšíření OpenGL. Ujistěte se prosím, že jsou nainstalovány nejnovější ovladače.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nepodporované rozšíření:&lt;br&gt;%2</translation>
</message>
@@ -6053,138 +6187,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Pořídit Snímek Obrazovky</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Celá Obrazovka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Načíst soubor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6280,7 +6414,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="66"/>
<source>Search</source>
- <translation type="unfinished"/>
+ <translation>Hledat</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="76"/>
@@ -6922,30 +7056,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[Nenastaveno]</translation>
</message>
@@ -6956,14 +7090,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Osa %1%2</translation>
</message>
@@ -6974,320 +7108,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[Neznámá]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Doleva</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Doprava</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Dolů</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Nahoru</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[nepoužito]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Capture</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Dotyk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/da.ts b/dist/languages/da.ts
index 082f839cf..7a16e813c 100644
--- a/dist/languages/da.ts
+++ b/dist/languages/da.ts
@@ -1134,78 +1134,78 @@ Dette vil bandlyse både vedkommendes forum-brugernavn og IP-adresse.</translati
<translation>yuzu Konfiguration</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Fejlfind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Filsystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GrafikAvanceret</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Genvejstaster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Styring</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Netværk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Spilliste</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Net</translation>
</message>
@@ -1399,17 +1399,22 @@ Dette vil bandlyse både vedkommendes forum-brugernavn og IP-adresse.</translati
<translation>Skjul mus ved inaktivitet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Nulstil Alle Indstillinger</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>dette nulstiller alle indstillinger og fjerner alle pr-spil-konfigurationer. Dette vil ikke slette spilmapper, -profiler, eller input-profiler. Fortsæt?</translation>
</message>
@@ -1697,43 +1702,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Baggrundsfarve:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly-Shadere, kun NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1857,37 +1862,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotropisk Filtrering:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Standard</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation type="unfinished"/>
</message>
@@ -2270,7 +2295,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Konfigurér</translation>
</message>
@@ -2337,22 +2362,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Aktivér kig med mus</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Mus-følsomhed</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Bevægelse / Berøring</translation>
</message>
@@ -2464,7 +2474,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Venstre Styrepind</translation>
</message>
@@ -2558,14 +2568,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2584,7 +2594,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -2597,15 +2607,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2662,247 +2672,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Højre Styrepind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Konfigurér</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Ryd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[ikke indstillet]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Funktionsskifteknap</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Omvend akser</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Angiv tærskel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Vælg en værdi imellem 0% og 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Tilsted Analog Pind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Bevæg, efter tryk på OK, først din styrepind vandret og så lodret.
Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Dødzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Forandringsrækkevidde: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro-Styringsenhed</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Dobbelt-Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Venstre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Højre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Håndholdt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube-Styringsenhed</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Styrepind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Pind</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Ryst!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[venter]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Indtast et profilnavn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Opret Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Det angivne profilnavn er ikke gyldigt!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Oprettelse af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Slet Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Sletning af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Indlæs Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Indlæsning af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Gem Input-Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Lagring af input-profil &quot;%1&quot; mislykkedes</translation>
</message>
@@ -3082,6 +3102,81 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Standard</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3157,47 +3252,47 @@ Bevæg, for at omvende akserne, først din styrepind lodret og så vandret.</tra
<translation>Udvikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Tilføjelser</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Egenskaber</translation>
</message>
@@ -3399,7 +3494,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3436,7 +3531,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3503,12 +3598,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[venter]</translation>
</message>
@@ -4618,1093 +4718,1127 @@ Træk punkter, for at skifte position, eller dobbeltklik i tabelceller, for at r
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonym data indsamles&lt;/a&gt;, for at hjælp med, at forbedre yuzu. &lt;br/&gt;&lt;br/&gt;Kunne du tænke dig, at dele dine brugsdata med os?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Indlæser Net-Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Deaktivér Net-Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Aktuel emuleringshastighed. Værdier højere eller lavere end 100% indikerer, at emulering kører hurtigere eller langsommere end en Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Advarsel, Forældet Spilformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Fejl under indlæsning af ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>ROM-formatet understøttes ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Der skete en fejl under initialisering af video-kerne.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Fejl ved Åbning af %1 Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Mappe eksisterer ikke!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS-Udpakning Mislykkedes!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Der skete en fejl ved kopiering af RomFS-filerne, eller brugeren afbrød opgaven.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Fuld</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Skelet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Vælg RomFS-Nedfældelsestilstand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Udpakker RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Afbryd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS-Udpakning Lykkedes!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Fuldførelse af opgaven lykkedes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Fejl ved Åbning af %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Vælg Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Egenskaber</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Spil-egenskaberne kunne ikke indlæses.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch-Eksekverbar (%1);;Alle filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Indlæs Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Åbn Udpakket ROM-Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Ugyldig Mappe Valgt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installér fil &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Systemapplikation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Systemarkiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Systemapplikationsopdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Firmwarepakke (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Firmwarepakke (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Spil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Spilopdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Spiludvidelse</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta-Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Vælg NCA-Installationstype...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Installation mislykkedes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Fil ikke fundet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Fil &quot;%1&quot; ikke fundet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Manglende yuzu-Konto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-Fil (%1);; Alle Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Indlæs Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Fejl ved indlæsning af Amiibo-data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Optag Skærmbillede</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG-Billede (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Hastighed: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Hastighed: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Spil: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Billede: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
+ <source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
+ <source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
+ <source>VOLUME: %1%</source>
+ <comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
+ <source>Confirm Key Rederivation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
+ <source>You are about to force rederive all of your keys.
+If you do not know what this means or what you are doing,
+this is a potentially destructive action.
+Please make sure this is what you want
+and optionally make backups.
+
+This will delete your autogenerated key files and re-run the key derivation module.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
+ <source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
+ <source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
+ <source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
+ <source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
+ <source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
+ <source>Deriving keys...
+This may take up to a minute depending
+on your system&apos;s performance.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
- <source>FSR</source>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
+ <source>Deriving Keys</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
- <source>NO AA</source>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
+ <source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
+ <source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
+ <source>Select RomFS Dump Target</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
- <source>VOLUME: MUTE</source>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
+ <source>Please select which RomFS you would like to dump.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
- <source>VOLUME: %1%</source>
- <comment>Volume percentage (e.g. 50%)</comment>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
+ <source>Are you sure you want to close yuzu?</source>
+ <translation>Er du sikker på, at du vil lukke yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
- <source>Confirm Key Rederivation</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
+ <source>yuzu</source>
+ <translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
- <source>You are about to force rederive all of your keys.
-If you do not know what this means or what you are doing,
-this is a potentially destructive action.
-Please make sure this is what you want
-and optionally make backups.
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
+ <source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
+ <translation>Er du sikker på, at du vil stoppe emulereingen? Enhver ulagret data, vil gå tabt.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
+ <source>The currently running application has requested yuzu to not exit.
-This will delete your autogenerated key files and re-run the key derivation module.</source>
+Would you like to bypass this and exit anyway?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
- <source>Missing fuses</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Ingen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
- <source> - Missing BOOT0</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
- <source> - Missing BCPKG2-1-Normal-Main</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
- <source> - Missing PRODINFO</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
- <source>Derivation Components Missing</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilineær</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
- <source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bikubisk</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
- <source>Deriving keys...
-This may take up to a minute depending
-on your system&apos;s performance.</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gausisk</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
- <source>Deriving Keys</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Dokket</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Håndholdt</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
- <source>System Archive Decryption Failed</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
- <source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
- <source>Select RomFS Dump Target</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
- <source>Please select which RomFS you would like to dump.</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
- <source>Are you sure you want to close yuzu?</source>
- <translation>Er du sikker på, at du vil lukke yuzu?</translation>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
- <source>yuzu</source>
- <translation>yuzu</translation>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
- <source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
- <translation>Er du sikker på, at du vil stoppe emulereingen? Enhver ulagret data, vil gå tabt.</translation>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
- <source>The currently running application has requested yuzu to not exit.
-
-Would you like to bypass this and exit anyway?</source>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -6057,138 +6191,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Optag Skærmbillede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Fuldskærm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Indlæs Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6922,30 +7056,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Skift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[ikke indstillet]</translation>
</message>
@@ -6956,14 +7090,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Akse %1%2</translation>
</message>
@@ -6974,320 +7108,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[ukendt]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Venstre</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Højre</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>ed</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Op</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[ubrugt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Hjem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Optag</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Berøring</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/de.ts b/dist/languages/de.ts
index 817f03fb8..500dce5f2 100644
--- a/dist/languages/de.ts
+++ b/dist/languages/de.ts
@@ -138,7 +138,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/multiplayer/chat_room.cpp" line="470"/>
<source>When you block a player, you will no longer receive chat messages from them.&lt;br&gt;&lt;br&gt;Are you sure you would like to block %1?</source>
- <translation type="unfinished"/>
+ <translation>Wenn du einen Spieler blockierst, wirst du keine Chatnachricht mehr von Ihm erhalten. &lt;br&gt;&lt;br&gt; Bist du sicher mit der Blockierung von %1?</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/chat_room.cpp" line="483"/>
@@ -212,7 +212,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/multiplayer/client_room.cpp" line="100"/>
<source>%1 - %2 (%3/%4 members) - connected</source>
- <translation type="unfinished"/>
+ <translation>%1 - %2 (%3/%4 Mitglieder) - verbunden</translation>
</message>
</context>
<context>
@@ -251,22 +251,22 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/compatdb.ui" line="107"/>
<source>No The game doesn&apos;t get past the &quot;Launching...&quot; screen</source>
- <translation type="unfinished"/>
+ <translation>Das Spiel kommt nicht über den &quot;Starten...&quot;-Bildschirm hinaus</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="124"/>
<source>Yes The game gets past the intro/menu and into gameplay</source>
- <translation type="unfinished"/>
+ <translation>Ja Das Spiel kommt über das Intro/Menü hinaus und ins Gameplay</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="131"/>
<source>No The game crashes or freezes while loading or using the menu</source>
- <translation type="unfinished"/>
+ <translation>Nein das Spiel stürzt ab oder friert ein während des Ladens des Menüs.</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="143"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game reach gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Erreicht das Spiel den Spielverlauf?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="176"/>
@@ -276,12 +276,12 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/compatdb.ui" line="183"/>
<source>No The game crashes or freezes during gameplay</source>
- <translation>Nein Das Spiel funktioniert nicht fehlerfrei. (Stürzt ab oder freezed)</translation>
+ <translation>Nein Das Spiel stürzt ab oder freezed während des spielen.</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="195"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game work without crashing, freezing or locking up during gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Funktioniert das Spiel ohne Abstürze, einfrieren oder dass es sich während des Spielverlaufs aufhängt?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="228"/>
@@ -296,7 +296,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/compatdb.ui" line="247"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Is the game completely playable from start to finish?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Ist das Spiel komplett spielbar von Anfang bis Ende?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="280"/>
@@ -316,7 +316,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/compatdb.ui" line="306"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game have any graphical glitches?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hat das Spiel irgendwelche grafischen Störungen?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="339"/>
@@ -336,7 +336,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/compatdb.ui" line="365"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game have any audio glitches / missing effects?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Hat das Spiel irgendwelche Tonstörungen / fehlende Effekte?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="389"/>
@@ -390,7 +390,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="70"/>
<source>Sound Output Mode:</source>
- <translation type="unfinished"/>
+ <translation>Tonausgangsmodus:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="78"/>
@@ -577,7 +577,8 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<source>
&lt;div&gt;This option improves the speed of 32 bits ASIMD floating-point functions by running with incorrect rounding modes.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+Diese Option steigert die Geschwindigkeit von 32-Bit-ASMID-Gleitkomma-Funktionen indem diese mit ungenauen Rundungsmodellen laufen.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="130"/>
@@ -602,19 +603,23 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<source>
&lt;div&gt;This option improves speed by eliminating a safety check before every memory read/write in guest. Disabling it may allow a game to read/write the emulator's memory.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+&lt;div&gt;Diese option verbessert die Geschwindigkeit durch ausschalten eines Sicherheits Check, bevor jeder speicher lesen/schreiben im Gast. Ausschalten erlaubt den Spiel vielleicht den Emulators Speicher zu lesen/schreiben.&lt;/div&gt;
+</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="154"/>
<source>Disable address space checks</source>
- <translation type="unfinished"/>
+ <translation>Adressraumprüfungen deaktivieren</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="161"/>
<source>
&lt;div&gt;This option improves speed by relying only on the semantics of cmpxchg to ensure safety of exclusive access instructions. Please note this may result in deadlocks and other race conditions.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div&gt;Diese Option verbessert die Geschwindigkeit, indem sie sich nur auf die Semantik von cmpxchg (compare and swap) verlässt, um die Sicherheit von Anweisungen mit exklusivem Zugriff zu gewährleisten. Bitte beachten Sie, dass dies zu Deadlocks und anderen Race Conditions führen kann.&lt;/div&gt;
+</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="166"/>
@@ -647,7 +652,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="31"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;For debugging only.&lt;/span&gt;&lt;br/&gt;If you&apos;re not sure what these do, keep all of these enabled. &lt;br/&gt;These settings, when disabled, only take effect when CPU Debugging is enabled. &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600;&quot;&gt;Nur für debugging.&lt;/span&gt;&lt;br/&gt;Wenn du nicht sicher bist was sie tun, dann lasse sie alle an. &lt;br/&gt;Diese Einstellung wenn ausgeschaltet, funktionieren nur wen CPU debugging an ist.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="41"/>
@@ -774,12 +779,14 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
&lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all memory accesses to use Software MMU Emulation.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;Diese Optimierung verschnellert Zugriff auf den Speicher durch ein Gast programm.&lt;/div&gt;
+ &lt;div style=&quot;white-space: nowrap&quot;&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="147"/>
<source>Enable Host MMU Emulation (general memory instructions)</source>
- <translation type="unfinished"/>
+ <translation>Aktiviert Host MMU Emulation (Generale Speicher Anweisung)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="154"/>
@@ -788,7 +795,11 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
&lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it causes guest exclusive memory reads/writes to be done directly into memory and make use of Host's MMU.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Disabling this forces all exclusive memory accesses to use Software MMU Emulation.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Diese Optimierung beschleunigt exklusive Speicherzugriffe durch das Gastprogramm.&lt;/div&gt;
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Die Aktivierung führt dazu, dass gastexklusive Speicherlese- und -schreibvorgänge direkt im Speicher erfolgen und die MMU des Hosts verwendet wird.&lt;/div&gt;
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Die Deaktivierung dieser Funktion zwingt alle exklusiven Speicherzugriffe zur Verwendung der Software-MMU-Emulation.&lt;/div&gt;
+</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="161"/>
@@ -801,12 +812,15 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
&lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up exclusive memory accesses by the guest program.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of fastmem failure of exclusive memory accesses.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Diese Optimierung beschleunigt exklusive Speicherzugriffe durch das Gastprogramm.&lt;/div&gt;
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Durch die Aktivierung wird der Overhead von Fastmem-Fehlern bei exklusiven Speicherzugriffen reduziert.&lt;/div&gt;
+</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="174"/>
<source>Enable recompilation of exclusive memory instructions</source>
- <translation type="unfinished"/>
+ <translation>Neukompilierung von Anweisungen mit exklusivem Speicher aktivieren</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="181"/>
@@ -814,12 +828,15 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
&lt;div style=&quot;white-space: nowrap&quot;&gt;This optimization speeds up memory accesses by allowing invalid memory accesses to succeed.&lt;/div&gt;
&lt;div style=&quot;white-space: nowrap&quot;&gt;Enabling it reduces the overhead of all memory accesses and has no impact on programs that don't access invalid memory.&lt;/div&gt;
</source>
- <translation type="unfinished"/>
+ <translation>
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Diese Optimierung beschleunigt die Speicherzugriffe, indem sie ungültige Speicherzugriffe zulässt.&lt;/div&gt;
+&lt;div style=&quot;white-space: nowrap&quot;&gt; Die Aktivierung reduziert den Overhead aller Speicherzugriffe und hat keine Auswirkungen auf Programme, die nicht auf ungültigen Speicher zugreifen.&lt;/div&gt;
+</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="187"/>
<source>Enable fallbacks for invalid memory accesses</source>
- <translation type="unfinished"/>
+ <translation>Fallbacks für ungültige Speicherzugriffe einschalten</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="212"/>
@@ -902,7 +919,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="159"/>
<source>When checked, it enables Nsight Aftermath crash dumps</source>
- <translation type="unfinished"/>
+ <translation>Wenn diese Option aktiviert ist, werden Nsight Aftermath-Crash-Dumps zugelassen.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="162"/>
@@ -912,7 +929,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="172"/>
<source>When checked, it will dump all the original assembler shaders from the disk shader cache or game as found</source>
- <translation type="unfinished"/>
+ <translation>Wenn diese Option aktiviert ist, werden alle Original-Assembler-Shader aus dem Festplatten-Shader-Cache oder welche von dem Spiel gefunden gefunden gedumpt.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="175"/>
@@ -922,7 +939,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="185"/>
<source>When checked, it will dump all the macro programs of the GPU</source>
- <translation type="unfinished"/>
+ <translation>Wenn diese Option aktiviert ist, werden alle Makroprogramme der GPU gedumpt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="188"/>
@@ -942,7 +959,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="211"/>
<source>When checked, it disables the macro HLE functions. Enabling this makes games run slower</source>
- <translation type="unfinished"/>
+ <translation> When checked, it disables the macro HLE functions. Enabling this makes games run slower</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="214"/>
@@ -962,7 +979,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="231"/>
<source>When checked, it executes shaders without loop logic changes</source>
- <translation type="unfinished"/>
+ <translation>Wenn diese Option aktiviert ist, werden Shader ohne Änderungen der looplogik ausgeführt.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="234"/>
@@ -977,7 +994,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="250"/>
<source>Enable Verbose Reporting Services**</source>
- <translation type="unfinished"/>
+ <translation> Ausführliche Berichtsdienste aktivieren**</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="257"/>
@@ -987,17 +1004,17 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="264"/>
<source>Enable this to output the latest generated audio command list to the console. Only affects games using the audio renderer.</source>
- <translation type="unfinished"/>
+ <translation>Aktivieren Sie diese Option, um den zuletzt generierten Audio-Log auf der Konsole auszugeben. Betrifft nur Spiele, die den Audio-Renderer verwenden.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="267"/>
<source>Dump Audio Commands To Console**</source>
- <translation type="unfinished"/>
+ <translation> Audio-Befehle auf die Konsole als Dump abspeichern**</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="274"/>
<source>Create Minidump After Crash</source>
- <translation type="unfinished"/>
+ <translation>Minidump nach Absturz erstellen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="284"/>
@@ -1027,7 +1044,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="318"/>
<source>Enable All Controller Types</source>
- <translation type="unfinished"/>
+ <translation>Aktiviere alle Arten von Controllern</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="325"/>
@@ -1037,12 +1054,12 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="332"/>
<source>Enables yuzu to check for a working Vulkan environment when the program starts up. Disable this if this is causing issues with external programs seeing yuzu.</source>
- <translation type="unfinished"/>
+ <translation>Ermöglicht es yuzu, beim Programmstart nach einer funktionierenden Vulkan-Umgebung zu suchen. Deaktivieren Sie dies, wenn dies zu Problemen mit externen Programmen führt, die yuzu sehen.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="335"/>
<source>Perform Startup Vulkan Check</source>
- <translation type="unfinished"/>
+ <translation>Vulkan-Prüfung beim Start durchführen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="350"/>
@@ -1067,7 +1084,7 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<message>
<location filename="../../src/yuzu/configuration/configure_debug.cpp" line="95"/>
<source>MiniDump creation not compiled</source>
- <translation type="unfinished"/>
+ <translation>MiniDump-Erstellung nicht kompiliert</translation>
</message>
</context>
<context>
@@ -1115,78 +1132,78 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<translation>yuzu-Konfiguration</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Dateisystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Allgemein</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GraphicsAdvanced</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Hotkeys</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Steuerung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Nutzer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Netzwerk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Spieleliste</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1380,17 +1397,22 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
<translation>Mauszeiger verstecken</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Setze alle Einstellungen zurück</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Hierdurch werden alle Einstellungen zurückgesetzt und alle spielspezifischen Konfigurationen gelöscht. Spiel-Ordner, Profile oder Eingabeprofile werden nicht gelöscht. Fortfahren?</translation>
</message>
@@ -1464,7 +1486,10 @@ Dies würde deren Forum Benutzernamen und deren IP-Adresse sperren.</translation
FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down.
Mailbox can have lower latency than FIFO and does not tear but may drop frames.
Immediate (no synchronization) just presents whatever is available and can exhibit tearing.</source>
- <translation type="unfinished"/>
+ <translation>FIFO (VSync) lässt keine Bilder fallen und zeigt kein Tearing, ist aber durch die Bildwiederholfrequenz begrenzt.
+FIFO Relaxed ist ähnlich wie FIFO, lässt aber Tearing zu, wenn es sich von einer Verlangsamung erholt.
+Mailbox kann eine geringere Latenz als FIFO haben und zeigt kein Tearing, kann aber Bilder fallen lassen.
+Immediate (keine Synchronisierung) zeigt direkt, was verfügbar ist und kann Tearing zeigen.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="247"/>
@@ -1594,7 +1619,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="468"/>
<source>Window Adapting Filter:</source>
- <translation type="unfinished"/>
+ <translation>Bildschirmanpassungsfilter:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="476"/>
@@ -1678,43 +1703,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Hintergrundfarbe:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, Nur NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Experimentell, Nur Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Aus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>Vsync Aus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Empfohlen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>An</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>Vsync An</translation>
</message>
@@ -1789,12 +1814,12 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="146"/>
<source>Uses reactive flushing instead of predictive flushing. Allowing a more accurate syncing of memory.</source>
- <translation type="unfinished"/>
+ <translation>Verwendet reaktives Flushing anstelle von prädiktivem Flushing. Ermöglicht eine genauere Synchronisierung des Speichers.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="149"/>
<source>Enable Reactive Flushing</source>
- <translation type="unfinished"/>
+ <translation>Aktiviere Reactives Flushing</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="156"/>
@@ -1809,7 +1834,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="166"/>
<source>Enables Fast GPU Time. This option will force most games to run at their highest native resolution.</source>
- <translation type="unfinished"/>
+ <translation>Aktiviert Schnelle GPU-Zeit. Diese Option zwingt die meisten Spiele dazu, mit ihrer höchsten nativen Auflösung zu laufen.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="169"/>
@@ -1819,7 +1844,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="176"/>
<source>Enables GPU vendor-specific pipeline cache. This option can improve shader loading time significantly in cases where the Vulkan driver does not store pipeline cache files internally.</source>
- <translation type="unfinished"/>
+ <translation>Aktiviert den GPU-anbieterspezifischen Pipeline-Cache. Diese Option kann die Shader-Ladezeit in Fällen, in denen der Vulkan-Treiber die Pipeline-Cache-Dateien nicht intern speichert, erheblich verbessern.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="179"/>
@@ -1830,45 +1855,66 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="186"/>
<source>Enable compute pipelines, required by some games. This setting only exists for Intel proprietary drivers, and may crash if enabled.
Compute pipelines are always enabled on all other drivers.</source>
- <translation type="unfinished"/>
+ <translation>Aktiviert Compute Pipelines, die von einigen Spielen benötigt werden. Diese Einstellung existiert nur für proprietäre Intel-Treiber und kann bei Aktivierung zum Absturz führen.
+Compute-Pipelines sind bei allen anderen Treibern immer aktiviert.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="190"/>
<source>Enable Compute Pipelines (Intel Vulkan only)</source>
+ <translation>Aktiviere Compute Pipelines (nur Intel Vulkan)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>Lasse das Spiel in der normalen Geschwindigkeit abspielen, trotz freigeschalteter Bildrade (FPS)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>Synchronisiere die Bildrate mit der Zwischensequenz</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>Verbessert das Rendering von Transparenzeffekten in bestimmten Spielen.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotrope Filterung:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automatisch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Standard</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -1951,12 +1997,12 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="380"/>
<source>Conflicting Button Sequence</source>
- <translation type="unfinished"/>
+ <translation>Widersprüchliche Tastenfolge</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="381"/>
<source>The default button sequence is already assigned to: %1</source>
- <translation type="unfinished"/>
+ <translation>Die Standard Tastenfolge ist bereits belegt von: %1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_hotkeys.cpp" line="395"/>
@@ -2251,7 +2297,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Konfigurieren</translation>
</message>
@@ -2285,7 +2331,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2668"/>
<source>Enable XInput 8 player support (disables web applet)</source>
- <translation type="unfinished"/>
+ <translation>Unterstützung für XInput 8-Player aktivieren (deaktiviert das Web-Applet)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2681"/>
@@ -2310,7 +2356,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2733"/>
<source>Allows unlimited uses of the same Amiibo in games that would otherwise limit you to one use.</source>
- <translation type="unfinished"/>
+ <translation>Ermöglicht die unbegrenzte Nutzung des gleichen Amiibo&apos;s welches andernfalls durch das Spiel limitiert wird.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2742"/>
@@ -2318,22 +2364,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>Zufällige Amiibo-ID verwenden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Maus-Panning aktivieren</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Maus-Empfindlichkeit</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Bewegung / Touch</translation>
</message>
@@ -2445,7 +2476,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Linker Analogstick</translation>
</message>
@@ -2539,14 +2570,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2565,7 +2596,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -2578,15 +2609,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2643,247 +2674,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Rechter Analogstick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Konfigurieren</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[nicht belegt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Knopf invertieren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Taste umschalten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Turbo Knopf</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Achsen umkehren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
- <translation type="unfinished"/>
+ <translation>Schwellwert festlegen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Wert zwischen 0% und 100% wählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
- <translation type="unfinished"/>
+ <translation>Gyro-Schwelle einstellen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Kalibriere den Sensor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Analog-Stick festlegen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Nach dem Drücken von OK den Joystick zuerst horizontal, dann vertikal bewegen.
Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizontal.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Achse zentrieren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Deadzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modifikator-Radius: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Zwei Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Linker Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Rechter Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube-Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke-Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64 Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Analog Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Schütteln!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[wartet]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Neues Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Profilnamen eingeben:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Eingabeprofil erstellen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Angegebener Profilname ist nicht gültig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Erstellen des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Eingabeprofil löschen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Löschen des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Eingabeprofil laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Laden des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Eingabeprofil speichern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Speichern des Eingabeprofils &quot;%1&quot; ist fehlgeschlagen</translation>
</message>
@@ -3063,6 +3104,81 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Aktiviere</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Standard</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3138,47 +3254,47 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<translation>Entwickler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Allgemeines</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Erw. Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Eingabe-Profile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Einstellungen</translation>
</message>
@@ -3344,12 +3460,12 @@ Um die Achsen umzukehren, bewege den Joystick zuerst vertikal und dann horizonta
<message>
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
<source>Error resizing user image</source>
- <translation type="unfinished"/>
+ <translation> Fehler bei der Größenänderung des Benutzerbildes</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
<source>Unable to resize image</source>
- <translation type="unfinished"/>
+ <translation>Die Bildgröße kann nicht angepasst werden.</translation>
</message>
</context>
<context>
@@ -3380,13 +3496,13 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
<source>Virtual Ring Sensor Parameters</source>
- <translation type="unfinished"/>
+ <translation>Parameter für den virtuellen Ringsensor</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="84"/>
@@ -3417,14 +3533,14 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Aktiviere</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="307"/>
<source>Ring Sensor Value</source>
- <translation type="unfinished"/>
+ <translation> Ringsensor-Wert</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="314"/>
@@ -3461,7 +3577,7 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="279"/>
<source>Error enabling ring input</source>
- <translation type="unfinished"/>
+ <translation> Fehler beim Aktivieren des Ring-Inputs</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="285"/>
@@ -3484,12 +3600,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
- <source>Unexpected driver result %1</source>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
+ <source>Unexpected driver result %1</source>
+ <translation>Unerwartetes Treiber Ergebnis %1</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[wartet]</translation>
</message>
@@ -3910,7 +4031,7 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_system.cpp" line="67"/>
<source>Warning: &quot;%1&quot; is not a valid language for region &quot;%2&quot;</source>
- <translation type="unfinished"/>
+ <translation>Achtung: &quot;%1&quot; ist keine valide Sprache für die Region &quot;%2&quot;</translation>
</message>
</context>
<context>
@@ -3923,17 +4044,17 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="17"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Reads controller input from scripts in the same format as TAS-nx scripts.&lt;br/&gt;For a more detailed explanation, please consult the &lt;a href=&quot;https://yuzu-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;help page&lt;/span&gt;&lt;/a&gt; on the yuzu website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Liest Controller-Eingaben von Skripten im gleichen Format wie TAS-nx-Skripte.&lt;br/&gt;Für eine detailliertere Erklärung, konsultiere bitte die &lt;a href=&quot;https://yuzu-emu.org/help/feature/tas/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt; Hilfe Seite &lt;/span&gt;&lt;/a&gt; auf der yuzu website.&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="27"/>
<source>To check which hotkeys control the playback/recording, please refer to the Hotkey settings (Configure -&gt; General -&gt; Hotkeys).</source>
- <translation type="unfinished"/>
+ <translation>Um zu überprüfen, welche Hotkeys die Wiedergabe/Aufnahme steuern, sehen Sie bitte in den Hotkey-Einstellungen nach (Konfigurieren -&gt; Allgemein -&gt; Hotkeys).</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="37"/>
<source>WARNING: This is an experimental feature.&lt;br/&gt;It will not play back scripts frame perfectly with the current, imperfect syncing method.</source>
- <translation type="unfinished"/>
+ <translation>ACHTUNG: Dies ist ein experimentes Feature.&lt;br/&gt;Es wird scripts nicht perfekt mit der momentanen, unperfekten Synchronisationsmethode abspielen. </translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="54"/>
@@ -4555,7 +4676,7 @@ Ziehe die Punkte mit deiner Maus, um ihre Position zu ändern. Doppelklicke auf
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="54"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Server address of the host&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Serveradresse des Hosts&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="64"/>
@@ -4599,559 +4720,576 @@ Ziehe die Punkte mit deiner Maus, um ihre Position zu ändern. Doppelklicke auf
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonyme Daten werden gesammelt,&lt;/a&gt; um yuzu zu verbessern.&lt;br/&gt;&lt;br/&gt;Möchstest du deine Nutzungsdaten mit uns teilen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetrie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Defekte Vulkan-Installation erkannt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
+ <translation>Vulkan Initialisierung fehlgeschlagen.&lt;br&gt;&lt;br&gt;Klicken Sie auf &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;für Instruktionen zur Problembehebung.&lt;/a&gt;.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Lade Web-Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Deaktiviere die Web Applikation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Wie viele Shader im Moment kompiliert werden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
- <translation type="unfinished"/>
+ <translation>Der momentan ausgewählte Auflösungsskalierung Multiplikator.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Derzeitige Emulations-Geschwindigkeit. Werte höher oder niedriger als 100% zeigen, dass die Emulation scheller oder langsamer läuft als auf einer Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Wie viele Bilder pro Sekunde angezeigt werden variiert von Spiel zu Spiel und von Szene zu Szene. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Zeit, die gebraucht wurde, um einen Switch-Frame zu emulieren, ohne Framelimit oder V-Sync. Für eine Emulation bei voller Geschwindigkeit sollte dieser Wert bei höchstens 16.67ms liegen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Ton aktivieren</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Stummschalten</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Ton zurücksetzen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Zuletzt geladene Dateien leeren</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Emulierte Maus ist aktiviert</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
- <translation type="unfinished"/>
+ <translation>Echte Mauseingabe und Mausschwenken sind nicht kompatibel. Bitte deaktivieren Sie die emulierte Maus in den erweiterten Eingabeeinstellungen, um das Schwenken der Maus zu ermöglichen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Fortsetzen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu betreibt ein Speil</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Warnung veraltetes Spielformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Du nutzt eine entpackte ROM-Ordnerstruktur für dieses Spiel, welches ein veraltetes Format ist und von anderen Formaten wie NCA, NAX, XCI oder NSP überholt wurde. Entpackte ROM-Ordner unterstützen keine Icons, Metadaten oder Updates.&lt;br&gt;&lt;br&gt;&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Unser Wiki&lt;/a&gt; enthält eine Erklärung der verschiedenen Formate, die yuzu unterstützt. Diese Nachricht wird nicht noch einmal angezeigt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>ROM konnte nicht geladen werden!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>ROM-Format wird nicht unterstützt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Beim Initialisieren des Video-Kerns ist ein Fehler aufgetreten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
- <translation type="unfinished"/>
+ <translation>Yuzu ist auf einen Fehler gestoßen beim Ausführen des Videokerns.
+Dies ist in der Regel auf veraltete GPU Treiber zurückzuführen, integrierte GPUs eingeschlossen.
+Bitte öffnen Sie die Log Datei für weitere Informationen. Für weitere Informationen wie Sie auf die Log Datei zugreifen, öffnen Sie bitte die folgende Seite: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Wie wird eine Log Datei hochgeladen?&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROM konnte nicht geladen werden! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Bitte folge der &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu-Schnellstart-Anleitung&lt;/a&gt; um deine Dateien zu extrahieren.&lt;br&gt;Hilfe findest du im yuzu-Wiki&lt;/a&gt; oder dem yuzu-Discord&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ein unbekannter Fehler ist aufgetreten. Bitte prüfe die Log-Dateien auf mögliche Fehlermeldungen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-Bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-Bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Schließe Software...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Speicherdaten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod-Daten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Konnte Verzeichnis %1 nicht öffnen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Verzeichnis existiert nicht!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Fehler beim Öffnen des transferierbaren Shader-Caches</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Fehler beim erstellen des Shader-Cache-Ordner für den ausgewählten Titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Fehler beim Entfernen des Inhalts</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Fehler beim Entfernen des Updates</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Fehler beim Entfernen des DLCs</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Installierten Spiele-Content entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Installierte Spiele-Updates entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Installierte Spiele-DLCs entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Eintrag entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Erfolgreich entfernt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Das Spiel wurde entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Das Spiel ist nicht im NAND installiert und kann somit nicht entfernt werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Das Update wurde entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Es ist kein Update für diesen Titel installiert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Es sind keine DLC für diesen Titel installiert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 DLC entfernt. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Transferierbaren OpenGL Shader Cache löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Transferierbaren Vulkan Shader Cache löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Alle transferierbaren Shader Caches löschen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Spiel-Einstellungen entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation>Cache-Speicher entfernen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Datei entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Fehler beim Entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Es existiert kein Shader-Cache für diesen Titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Der transferierbare Shader-Cache wurde entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Konnte den transferierbaren Shader-Cache nicht entfernen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Fehler beim Entfernen des Vulkan-Pipeline-Cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Fehler beim Entfernen des Driver-Pipeline-Cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Fehler beim Entfernen der transferierbaren Shader Caches</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
- <translation type="unfinished"/>
+ <translation>Die übertragbaren Shader-Caches wurden erfolgreich entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Fehler beim Entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Es existieren keine Spiel-Einstellungen für dieses Spiel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Die Spiel-Einstellungen wurden entfernt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Die Spiel-Einstellungen konnten nicht entfernt werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS-Extraktion fehlgeschlagen!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Das RomFS konnte wegen eines Fehlers oder Abbruchs nicht kopiert werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Komplett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Nur Ordnerstruktur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFS Extraktions-Modus auswählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Bitte wähle, wie das RomFS gespeichert werden soll.&lt;br&gt;&quot;Full&quot; wird alle Dateien des Spiels extrahieren, während &lt;br&gt;&quot;Skeleton&quot; nur die Ordnerstruktur erstellt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Es ist nicht genügend Speicher (%1) vorhanden um das RomFS zu entpacken. Bitte sorge für genügend Speicherplatze oder wähle ein anderes Verzeichnis aus. (Emulation &gt; Konfiguration &gt; System &gt; Dateisystem &gt; Dump Root)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>RomFS wird extrahiert...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Abbrechen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS wurde extrahiert!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Der Vorgang wurde erfolgreich abgeschlossen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Verknüpfung erstellen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Icon erstellen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
- <translation type="unfinished"/>
+ <translation>Symboldatei konnte nicht erstellt werden. Der Pfad &quot;%1&quot; existiert nicht oder kann nicht erstellt werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
- <translation type="unfinished"/>
+ <translation>Verknüpfung konnte nicht unter %1 erstellt werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
- <translation type="unfinished"/>
+ <translation>Verknüpfung wurde erfolgreich erstellt unter %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Fehler beim Öffnen von %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Verzeichnis auswählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Einstellungen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Spiel-Einstellungen konnten nicht geladen werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch-Programme (%1);;Alle Dateien (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Datei laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Öffne das extrahierte ROM-Verzeichnis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Ungültiges Verzeichnis ausgewählt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Das Verzeichnis, das du ausgewählt hast, enthält keine &apos;main&apos;-Datei.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installierbares Switch-Programm (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submissions Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Dateien installieren</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n Datei verbleibend</numerusform><numerusform>%n Dateien verbleibend</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Datei &quot;%1&quot; wird installiert...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>NAND-Installation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Um Konflikte zu vermeiden, raten wir Nutzern davon ab, Spiele im NAND zu installieren.
Bitte nutze diese Funktion nur zum Installieren von Updates und DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n file was newly installed
@@ -5159,400 +5297,324 @@ Bitte nutze diese Funktion nur zum Installieren von Updates und DLC.</translatio
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Systemanwendung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Systemarchiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Systemanwendungsupdate</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware-Paket (Typ A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-Paket (Typ B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Spiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Spiel-Update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Spiel-DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta-Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Wähle den NCA-Installationstyp aus...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Bitte wähle, als was diese NCA installiert werden soll:
(In den meisten Fällen sollte die Standardeinstellung &apos;Spiel&apos; ausreichen.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Installation fehlgeschlagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Der Titel-Typ, den du für diese NCA ausgewählt hast, ist ungültig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Datei nicht gefunden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Datei &quot;%1&quot; nicht gefunden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Hardwareanforderungen nicht erfüllt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Dein System erfüllt nicht die empfohlenen Mindestanforderungen der Hardware. Meldung der Komptabilität wurde deaktiviert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Fehlender yuzu-Account</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Um einen Kompatibilitätsbericht abzuschicken, musst du einen yuzu-Account mit yuzu verbinden.&lt;br&gt;&lt;br/&gt;Um einen yuzu-Account zu verbinden, prüfe die Einstellungen unter Emulation &amp;gt; Konfiguration &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Fehler beim Öffnen der URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL &quot;%1&quot; kann nicht geöffnet werden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS Aufnahme</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Datei von Spieler 1 überschreiben?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Ungültige Konfiguration erkannt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Handheld-Controller können nicht im Dock verwendet werden. Der Pro-Controller wird verwendet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Das aktuelle Amiibo wurde entfernt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Fehler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Das aktuelle Spiel sucht nicht nach Amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-Datei (%1);; Alle Dateien (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Amiibo laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Fehler beim Laden der Amiibo-Daten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Die ausgewählte Datei ist keine gültige Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Die ausgewählte Datei wird bereits verwendet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Ein unbekannter Fehler ist aufgetreten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Screenshot aufnehmen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG Bild (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS Zustand: Läuft %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS Zustand: Aufnahme %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS Zustand: Ungültig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
- <translation type="unfinished"/>
+ <translation>Aufnahme stoppen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
- <translation type="unfinished"/>
+ <translation>Aufnahme</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Skalierung: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Geschwindigkeit: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Geschwindigkeit: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Spiel: %1 FPS (Unbegrenzt)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Spiel: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU HOCH</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREM</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU FEHLER</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>DOCKED</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>HANDHELD</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NÄCHSTER</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BIKUBISCH</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>KEIN AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>LAUTSTÄRKE: STUMM</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>LAUTSTÄRKE: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Schlüsselableitung bestätigen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5565,37 +5627,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
Dieser Prozess wird die generierten Schlüsseldateien löschen und die Schlüsselableitung neu starten.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Fuses fehlen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0 fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Main fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFO fehlt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Derivationskomponenten fehlen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
- <translation type="unfinished"/>
+ <translation>Die Verschlüsselungsschlüssel fehlen. &lt;br&gt;Bitte folgen Sie &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;dem Yuzu Schnellstart Guide&lt;/a&gt; um ihre benötigten Schlüssel, Firmware und Spiele zu erhalten.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5603,49 +5665,49 @@ on your system&apos;s performance.</source>
Dies könnte, je nach Leistung deines Systems, bis zu einer Minute dauern.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Schlüsselableitung</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
- <translation type="unfinished"/>
+ <translation>Die Systemarchiventschlüsselung ist gescheitert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>RomFS wählen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Wähle, welches RomFS du speichern möchtest.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Bist du sicher, dass du yuzu beenden willst?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Bist du sicher, dass du die Emulation stoppen willst? Jeder nicht gespeicherte Fortschritt geht verloren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5653,48 +5715,143 @@ Would you like to bypass this and exit anyway?</source>
Möchtest du dies umgehen und sie trotzdem beenden?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Keiner</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bikubisch</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussian</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Im Dock</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Handheld</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Hoch</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL nicht verfügbar!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
- <translation type="unfinished"/>
+ <translation>Gemeinsame OpenGL-Kontexte werden nicht unterstützt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu wurde nicht mit OpenGL-Unterstützung kompiliert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Fehler beim Initialisieren von OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Deine Grafikkarte unterstützt kein OpenGL oder du hast nicht den neusten Treiber installiert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Fehler beim Initialisieren von OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Deine Grafikkarte unterstützt OpenGL 4.6 nicht, oder du benutzt nicht die neuste Treiberversion.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Deine Grafikkarte unterstützt anscheinend nicht eine oder mehrere von yuzu benötigten OpenGL-Erweiterungen. Bitte stelle sicher, dass du den neusten Grafiktreiber installiert hast.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nicht unterstützte Erweiterungen:&lt;br&gt;%2</translation>
</message>
@@ -5903,7 +6060,7 @@ Möchtest du dies umgehen und sie trotzdem beenden?</translation>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish.</source>
- <translation type="unfinished"/>
+ <translation>Das Spiel funktioniert mit minimalen grafischen oder Tonstörungen und ist komplett spielbar.</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="155"/>
@@ -5913,7 +6070,7 @@ Möchtest du dies umgehen und sie trotzdem beenden?</translation>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Game loads, but is unable to progress past the Start Screen.</source>
- <translation type="unfinished"/>
+ <translation>Das Spiel lädt, ist jedoch nicht im Stande den Startbildschirm zu passieren.</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="156"/>
@@ -5949,7 +6106,7 @@ Möchtest du dies umgehen und sie trotzdem beenden?</translation>
<message numerus="yes">
<location filename="../../src/yuzu/game_list.cpp" line="86"/>
<source>%1 of %n result(s)</source>
- <translation><numerusform>%1 von %n Ergebnis</numerusform><numerusform>%1 von %n Ergebnisse</numerusform></translation>
+ <translation><numerusform>%1 von %n Ergebnis</numerusform><numerusform>%1 von %n Ergebnisse(n)</numerusform></translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="795"/>
@@ -6047,138 +6204,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Audio aktivieren / deaktivieren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Hauptfenster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Lautstärke verringern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Lautstärke erhöhen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Screenshot aufnehmen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Adaptiven Filter ändern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>GPU-Genauigkeit ändern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Emulation fortsetzen/pausieren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Vollbild verlassen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>yuzu verlassen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Vollbild</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Datei laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Amiibo laden/entfernen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Emulation neustarten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Emulation stoppen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>TAS aufnehmen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>TAS neustarten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS starten/stoppen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
- <translation type="unfinished"/>
+ <translation>Filterleiste umschalten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Aktiviere Bildraten Limitierung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
- <translation type="unfinished"/>
+ <translation>Mausschwenk umschalten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6587,7 +6744,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/main.ui" line="405"/>
<source>R&amp;ecord</source>
- <translation type="unfinished"/>
+ <translation>Aufnahme</translation>
</message>
</context>
<context>
@@ -6789,7 +6946,8 @@ Eventuell hat dieser den Raum verlassen.</translation>
<location filename="../../src/yuzu/multiplayer/message.cpp" line="52"/>
<source>No valid network interface is selected.
Please go to Configure -&gt; System -&gt; Network and make a selection.</source>
- <translation type="unfinished"/>
+ <translation>Es ist keine gültige Netzwerkschnittstelle ausgewählt.
+Bitte gehen Sie zu Konfigurieren -&gt; System -&gt; Netzwerk und treffen Sie eine Auswahl.</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/message.cpp" line="68"/>
@@ -6917,30 +7075,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Strg</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[nicht gesetzt]</translation>
</message>
@@ -6951,14 +7109,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Achse %1%2</translation>
</message>
@@ -6969,320 +7127,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[unbekannt]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Links</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Rechts</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Runter</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Hoch</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Kreis</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Kreuz</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Quadrat</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Dreieck</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Teilen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Optionen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[undefiniert]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[ungültig]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Achse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Achse %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Bewegung %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Knopf %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[unbenutzt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Stick L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Stick R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Screenshot</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Mausrad</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Rückwärts</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Vorwärts</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Aufgabe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
@@ -7362,7 +7520,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="384"/>
<source>Mount Amiibo</source>
- <translation type="unfinished"/>
+ <translation>Amiibo einbinden</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="390"/>
diff --git a/dist/languages/el.ts b/dist/languages/el.ts
index 2d16da565..712f5241e 100644
--- a/dist/languages/el.ts
+++ b/dist/languages/el.ts
@@ -485,7 +485,7 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.cpp" line="140"/>
<source>Auto</source>
- <translation type="unfinished"/>
+ <translation>Αυτόματη</translation>
</message>
</context>
<context>
@@ -513,7 +513,7 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="42"/>
<source>Auto</source>
- <translation type="unfinished"/>
+ <translation>Αυτόματη</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_cpu.ui" line="47"/>
@@ -1126,78 +1126,78 @@ This would ban both their forum username and their IP address.</source>
<translation>Διαμόρφωση yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Ήχος</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Αποσφαλμάτωση</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Σύστημα Αρχείων</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Γενικά</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Γραφικά</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Πλήκτρα Συντόμευσης</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Χειρισμός</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Τα προφίλ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Δίκτυο</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Σύστημα</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Λίστα Παιχνιδιών</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Ιστός</translation>
</message>
@@ -1391,17 +1391,22 @@ This would ban both their forum username and their IP address.</source>
<translation>Απόκρυψη δρομέα ποντικιού στην αδράνεια</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Επαναφορά Όλων των Ρυθμίσεων</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Επαναφέρει όλες τις ρυθμίσεις και καταργεί όλες τις επιλογές ανά παιχνίδι. Δεν θα διαγράψει καταλόγους παιχνιδιών, προφίλ ή προφίλ εισόδου. Συνέχιση;</translation>
</message>
@@ -1689,43 +1694,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Χρώμα Φόντου:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders Γλώσσας Μηχανής, μόνο NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1849,37 +1854,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Ανισοτροπικό Φιλτράρισμα:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Αυτόματα</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Προεπιλεγμένο</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2262,7 +2287,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Διαμόρφωση</translation>
</message>
@@ -2329,22 +2354,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Ενεργοποιήστε τη μετατόπιση του ποντικιού</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Ευαισθησία ποντικιού</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation type="unfinished"/>
</message>
@@ -2456,7 +2466,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Αριστερό Stick</translation>
</message>
@@ -2550,14 +2560,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2576,7 +2586,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Συν</translation>
</message>
@@ -2589,15 +2599,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2654,247 +2664,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Δεξιός Μοχλός</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Διαμόρφωση</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Καθαρισμός</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[άδειο]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Κουμπί αντιστροφής</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Κουμπί εναλλαγής</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Αντιστροφή άξονα</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Ορισμός ορίου</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Επιλέξτε μια τιμή μεταξύ 0% και 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Εναλλαγή αξόνων</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Ρύθμιση κατωφλίου γυροσκοπίου</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Χαρτογράφηση Αναλογικού Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Αφού πατήσετε OK, μετακινήστε πρώτα το joystick σας οριζόντια και μετά κατακόρυφα.
Για να αντιστρέψετε τους άξονες, μετακινήστε πρώτα το joystick κατακόρυφα και μετά οριζόντια.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Κεντρικός άξονας</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Νεκρή Ζώνη: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Εύρος Τροποποιητή: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Διπλά Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Αριστερό Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Δεξί Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Χειριστήριο GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Χειριστήριο NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Χειριστήριο SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Χειριστήριο N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[αναμονή]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Νέο Προφίλ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Εισαγάγετε ένα όνομα προφίλ:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Δημιουργία Προφίλ Χειρισμού</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Το όνομα του προφίλ δεν είναι έγκυρο!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Η δημιουργία του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Διαγραφή Προφίλ Χειρισμού</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Η διαγραφή του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Φόρτωση Προφίλ Χειρισμού</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Η φόρτωση του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Αποθήκευση Προφίλ Χειρισμού</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Η αποθήκευση του προφίλ χειρισμού &quot;%1&quot; απέτυχε</translation>
</message>
@@ -3074,6 +3094,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Προεπιλεγμένο</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3149,47 +3244,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Προγραμματιστής</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Πρόσθετα</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Γενικά</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Σύστημα</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Γραφικά</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Προχ. Γραφικά</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Ήχος</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Ιδιότητες</translation>
</message>
@@ -3391,7 +3486,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3428,7 +3523,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3495,12 +3590,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[αναμονή]</translation>
</message>
@@ -3530,7 +3630,7 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="41"/>
<source>Auto</source>
- <translation type="unfinished"/>
+ <translation>Αυτόματη</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="46"/>
@@ -4609,105 +4709,120 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Τηλεμετρία</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Πόσα καρέ ανά δευτερόλεπτο εμφανίζει το παιχνίδι αυτή τη στιγμή. Αυτό διαφέρει από παιχνίδι σε παιχνίδι και από σκηνή σε σκηνή.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Συνέχεια</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Παύση</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Μη μεταφρασμένη συμβολοσειρά
@@ -4715,855 +4830,779 @@ Drag points to change position, or double-click table cells to edit values.</sou
Για μια εξήγηση των διαφόρων μορφών Switch που υποστηρίζει το yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt; δείτε το wiki μας &lt;/a&gt;. Αυτό το μήνυμα δεν θα εμφανιστεί ξανά.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Σφάλμα κατά τη φόρτωση της ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Εμφανίστηκε ένα απροσδιόριστο σφάλμα. Ανατρέξτε στο αρχείο καταγραφής για περισσότερες λεπτομέρειες.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Αποθήκευση δεδομένων</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Ο φάκελος δεν υπάρχει!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Αφαίρεση Αρχείου</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Επιλογή λειτουργίας απόρριψης RomFS </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Μη αποθηκευμένη μετάφραση.
Παρακαλούμε επιλέξτε τον τρόπο με τον οποίο θα θέλατε να γίνει η απόρριψη της RomFS.&lt;br&gt;
Η επιλογή Πλήρης θα αντιγράψει όλα τα αρχεία στο νέο κατάλογο, ενώ η επιλογή &lt;br&gt; Σκελετός θα δημιουργήσει μόνο τη δομή του καταλόγου.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Ακύρωση</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Η επέμβαση ολοκληρώθηκε με επιτυχία.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Επιλογή καταλόγου</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Ιδιότητες</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Φόρτωση αρχείου</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Αποτελέσματα εγκατάστασης</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Εφαρμογή συστήματος</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Παιχνίδι</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Ενημέρωση παιχνιδιού</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC παιχνιδιού</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Επιλέξτε τον τύπο εγκατάστασης NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Το αρχείο δεν βρέθηκε</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Το αρχείο &quot;%1&quot; δεν βρέθηκε</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Σφάλμα κατα το άνοιγμα του URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Αδυναμία ανοίγματος του URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Σφάλμα</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Φόρτωση Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Σφάλμα φόρτωσης δεδομένων Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Το επιλεγμένο αρχείο δεν αποτελεί έγκυρο amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Το επιλεγμένο αρχείο χρησιμοποιείται ήδη</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Λήψη στιγμιότυπου οθόνης</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Εικόνα PBG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Έναρξη</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Κλίμακα: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Ταχύτητα: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Ταχύτητα: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Καρέ: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation type="unfinished"/>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5574,133 +5613,228 @@ This will delete your autogenerated key files and re-run the key derivation modu
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Λείπει το BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Λείπει το BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- Λείπει το PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Είστε σίγουροι ότι θέλετε να κλείσετε το yuzu;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Κανένα</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Διγραμμικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Δικυβικό</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussian</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Docked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Handheld</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>Το OpenGL δεν είναι διαθέσιμο!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Σφάλμα κατα την αρχικοποίηση του OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -6053,138 +6187,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Λήψη στιγμιότυπου οθόνης</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Πλήρη Οθόνη</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Φόρτωση αρχείου</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6280,7 +6414,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="66"/>
<source>Search</source>
- <translation type="unfinished"/>
+ <translation>Αναζήτηση</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="76"/>
@@ -6921,30 +7055,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[μη ορισμένο]</translation>
</message>
@@ -6955,14 +7089,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Άξονας%1%2</translation>
</message>
@@ -6973,320 +7107,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[άγνωστο]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Αριστερά</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Δεξιά</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Κάτω</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Πάνω</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>Χ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Υ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[άδειο]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Συν</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Μείον</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Αρχική</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Στιγμιότυπο</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/es.ts b/dist/languages/es.ts
index f57671af8..7032c726e 100644
--- a/dist/languages/es.ts
+++ b/dist/languages/es.ts
@@ -1137,78 +1137,78 @@ Esto banearía su nombre del foro y su dirección IP.</translation>
<translation>Configuración de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Depuración</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Sistema de archivos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Gráficosavanzados</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Teclas de acceso rápido</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Controles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Perfiles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Red</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Lista de juegos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1402,17 +1402,22 @@ Esto banearía su nombre del foro y su dirección IP.</translation>
<translation>Ocultar el cursor en caso de inactividad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation>Desactivar applet de control</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Reiniciar todos los ajustes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Esto reiniciará y eliminará todas las configuraciones de los juegos. No eliminará ni los directorios de juego, ni los perfiles, ni los perfiles de los mandos. ¿Continuar?</translation>
</message>
@@ -1703,43 +1708,43 @@ Inmediato (sin sincronización) sólo muestra lo que está disponible y puede mo
<translation>Color de fondo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders de ensamblado, sólo NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Experimental, sólo Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Desactivado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>VSync Desactivado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Recomendado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>Activado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>VSync Activado</translation>
</message>
@@ -1864,37 +1869,57 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
<translation>Activar canalizaciones de cómputo (sólo Intel Vulkan)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>Corre el juego a la velocidad normal durante la reproducción de vídeos, incluso cuando no hay límite de fotogramas.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>Sincronizar a fotogramas de reproducción de vídeo</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>Mejora la renderización de los efectos de transparencia en ciertos juegos.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation>Bucles de feedback de barrera</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtrado anisotrópico:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automático</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Valor predeterminado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>x2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>x4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>x8</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>x16</translation>
</message>
@@ -2277,7 +2302,7 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2344,22 +2369,7 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
<translation>Usar un ID de Amiibo aleatorio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Activar desplazamiento del ratón</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensibilidad del ratón</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Movimiento / táctil</translation>
</message>
@@ -2471,7 +2481,7 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Palanca izquierda</translation>
</message>
@@ -2565,14 +2575,14 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2591,7 +2601,7 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Más</translation>
</message>
@@ -2604,15 +2614,15 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2669,247 +2679,257 @@ Las canalizaciones de cómputo están siempre activadas en los otros drivers.</t
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Palanca derecha</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation>Desplazamiento del ratón</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configurar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Borrar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[no definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Invertir botón</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Alternar botón</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Botón turbo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Invertir ejes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Configurar umbral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Seleccione un valor entre 0% y 100%.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Alternar ejes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Configurar umbral del Giroscopio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Calibrar sensor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Configuración de palanca analógico</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Después de pulsar OK, mueve primero el joystick de manera horizontal, y luego verticalmente.
Para invertir los ejes, mueve primero el joystick de manera vertical, y luego horizontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Centrar ejes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Punto muerto: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Rango del modificador: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Controlador Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joycons duales</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon izquierdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon derecho</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Controlador de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Controlador NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Controlador SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Controlador N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Inicio / Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Palanca de control</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>¡Agita!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[esperando]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nuevo perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Introduce un nombre de perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Crear perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>¡El nombre de perfil introducido no es válido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Error al crear el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Eliminar perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Error al eliminar el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Cargar perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Error al cargar el perfil de entrada &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Guardar perfil de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Error al guardar el perfil de entrada &quot;%1&quot;</translation>
</message>
@@ -3089,6 +3109,81 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation>Configurar desplazamiento del ratón</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Activar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation>Puede ser activada con una tecla de acceso rápido</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation>Sensibilidad</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation>Horizontal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation>Vertical</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation>Contrapeso de la zona muerta</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation>Contrarresta la zona muerta por defecto de un juego</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation>Decaída del stick</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation>Fuerza</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation>Mínimo</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Predeterminado</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3164,47 +3259,47 @@ Para invertir los ejes, mueve primero el joystick de manera vertical, y luego ho
<translation>Desarrollador</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Extras / Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>General</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Gráficos avanz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Perfiles de entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Propiedades</translation>
</message>
@@ -3407,8 +3502,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Si quieres usar este control configura el jugador 1 como el control derecho y el jugador 2 como joycon dual antes de iniciar el juego para permitir al control ser detectado apropiadamente.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation>Para usar el Ring-Con, configura al jugador 1 como el Joy-Con derecho (tanto físico como emulado) y al jugador 2 como el Joy-Con izquierdo (tanto físico como emulado) antes de correr el juego.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3444,7 +3539,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Activar</translation>
</message>
@@ -3511,12 +3606,17 @@ UUID: %2</translation>
<translation>El dispositivo de entrada actual no tiene el Ring incorporado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Resultado inesperado del driver %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[esperando]</translation>
</message>
@@ -4626,560 +4726,575 @@ Arrastra los puntos para cambiar de posición, o haz doble clic en las celdas de
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Los datos de uso anónimos se recogen&lt;/a&gt; para ayudar a mejorar yuzu. &lt;br/&gt;&lt;br/&gt;¿Deseas compartir tus datos de uso con nosotros?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetría </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Se ha detectado una instalación corrupta de Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>La inicialización de Vulkan ha fallado durante la ejecución. Haz clic &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;aquí para más información sobre como arreglar el problema&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation>Ejecutando un juego</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Cargando Web applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Desactivar Web applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Deshabilitar el Applet Web puede causar comportamientos imprevistos y debería solo ser usado con Super Mario 3D All-Stars. ¿Estas seguro que quieres deshabilitar el Applet Web?
(Puede ser reactivado en las configuraciones de Depuración.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>La cantidad de shaders que se están construyendo actualmente</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>El multiplicador de escala de resolución seleccionado actualmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>La velocidad de emulación actual. Los valores superiores o inferiores al 100% indican que la emulación se está ejecutando más rápido o más lento que en una Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>La cantidad de fotogramas por segundo que se está mostrando el juego actualmente. Esto variará de un juego a otro y de una escena a otra.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tiempo que lleva emular un fotograma de la Switch, sin tener en cuenta la limitación de fotogramas o sincronización vertical. Para una emulación óptima, este valor debería ser como máximo de 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Desmutear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Mutear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Restablecer Volumen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Eliminar archivos recientes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>El ratón emulado está activado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>La entrada de un ratón real y la panoramización del ratón son incompatibles. Por favor, desactive el ratón emulado en la configuración avanzada de entrada para permitir así la panoramización del ratón.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu está ejecutando un juego</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Advertencia: formato del juego obsoleto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Está utilizando el formato de directorio de ROM deconstruido para este juego, que es un formato desactualizado que ha sido reemplazado por otros, como los NCA, NAX, XCI o NSP. Los directorios de ROM deconstruidos carecen de íconos, metadatos y soporte de actualizaciones.&lt;br&gt;&lt;br&gt;Para ver una explicación de los diversos formatos de Switch que soporta yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;echa un vistazo a nuestra wiki&lt;/a&gt;. Este mensaje no se volverá a mostrar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>¡Error al cargar la ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>El formato de la ROM no es compatible.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Se ha producido un error al inicializar el núcleo de video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu ha encontrado un error al ejecutar el núcleo de video. Esto suele ocurrir al no tener los controladores de la GPU actualizados, incluyendo los integrados. Por favor, revisa el registro para más detalles. Para más información sobre cómo acceder al registro, por favor, consulta la siguiente página: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Como cargar el archivo de registro&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>¡Error al cargar la ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Por favor, sigue &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guía de inicio rápido de yuzu&lt;/a&gt; para revolcar los archivos.&lt;br&gt;Puedes consultar la wiki de yuzu&lt;/a&gt; o el Discord de yuzu&lt;/a&gt; para obtener ayuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Error desconocido. Por favor, consulte el archivo de registro para ver más detalles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Cerrando software...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Datos de guardado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Datos de mods</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Error al abrir la carpeta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>¡La carpeta no existe!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Error al abrir el caché transferible de shaders</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>No se pudo crear el directorio de la caché de los shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Error al eliminar el contenido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Error al eliminar la actualización</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Error al eliminar el DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>¿Eliminar contenido del juego instalado?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>¿Eliminar actualización del juego instalado?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>¿Eliminar el DLC del juego instalado?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Eliminar entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Se ha eliminado con éxito</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Se ha eliminado con éxito el juego base instalado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>El juego base no está instalado en el NAND y no se puede eliminar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Se ha eliminado con éxito la actualización instalada.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>No hay ninguna actualización instalada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>No hay ningún DLC instalado para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Se ha eliminado con éxito %1 DLC instalado(s).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>¿Deseas eliminar el caché transferible de shaders de OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>¿Deseas eliminar el caché transferible de shaders de Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>¿Deseas eliminar todo el caché transferible de shaders?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>¿Deseas eliminar la configuración personalizada del juego?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>¿Quitar almacenamiento de caché?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Eliminar archivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Error al eliminar la caché de shaders transferibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>No existe caché de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>El caché de shaders transferibles se ha eliminado con éxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>No se ha podido eliminar la caché de shaders transferibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Error al eliminar la caché de canalización del controlador Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>No se ha podido eliminar la caché de canalización del controlador.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Error al eliminar las cachés de shaders transferibles</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Cachés de shaders transferibles eliminadas con éxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>No se ha podido eliminar el directorio de cachés de shaders transferibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Error al eliminar la configuración personalizada del juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>No existe una configuración personalizada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Se eliminó con éxito la configuración personalizada del juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>No se ha podido eliminar la configuración personalizada del juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>¡La extracción de RomFS ha fallado!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Se ha producido un error al copiar los archivos RomFS o el usuario ha cancelado la operación.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Completo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>En secciones</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Elegir método de volcado de RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Por favor, selecciona el método en que quieres volcar el RomFS.&lt;br&gt;Completo copiará todos los archivos al nuevo directorio &lt;br&gt; mientras que en secciones solo creará la estructura del directorio.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>No hay suficiente espacio en %1 para extraer el RomFS. Por favor, libera espacio o elige otro directorio de volcado en Emulación &gt; Configuración &gt; Sistema &gt; Sistema de archivos &gt; Raíz de volcado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extrayendo RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>¡La extracción RomFS ha tenido éxito!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>La operación se completó con éxito.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Crear acceso directo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Esto creará un acceso directo a la AppImage actual. Esto puede no funcionar bien si se actualiza. ¿Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>No se puede crear un acceso directo en el escritorio. La ruta &quot;%1&quot; no existe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>No se puede crear un acceso directo en el menú de aplicaciones. La ruta &quot;%1&quot; no existe y no se puede crear.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Crear icono</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>No se puede crear el archivo de icono. La ruta &quot;%1&quot; no existe y no se ha podido crear.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Iniciar %1 con el Emulador yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Error al crear un acceso directo en %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Se ha creado un acceso directo a %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Error al intentar abrir %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Seleccionar directorio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Propiedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>No se pueden cargar las propiedades del juego.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Ejecutable de Switch (%1);;Todos los archivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Cargar archivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Abrir el directorio de la ROM extraída</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Directorio seleccionado no válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>El directorio que ha seleccionado no contiene ningún archivo &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Archivo de Switch Instalable (*.nca *.nsp *.xci);;Archivo de contenidos de Nintendo (*.nca);;Paquete de envío de Nintendo (*.nsp);;Imagen de cartucho NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Instalar archivos</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n archivo(s) restantes</numerusform><numerusform>%n archivo(s) restantes</numerusform><numerusform>%n archivo(s) restantes</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalando el archivo &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Instalar resultados</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Para evitar posibles conflictos, no se recomienda a los usuarios que instalen juegos base en el NAND.
Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n archivo(s) recién instalado/s
@@ -5188,7 +5303,7 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n archivo(s) recién sobreescrito/s
@@ -5197,7 +5312,7 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n archivo(s) no se instaló/instalaron
@@ -5206,388 +5321,312 @@ Por favor, utiliza esta función sólo para instalar actualizaciones y DLCs.</tr
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Aplicación del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Archivo del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Actualización de la aplicación del sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Paquete de firmware (Tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Paquete de firmware (Tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Actualización de juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC del juego</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Titulo delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Seleccione el tipo de instalación NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Seleccione el tipo de título en el que deseas instalar este NCA como:
(En la mayoría de los casos, el &apos;Juego&apos; predeterminado está bien).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Fallo en la instalación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>El tipo de título que seleccionó para el NCA no es válido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Archivo no encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Archivo &quot;%1&quot; no encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>Aceptar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>No se cumplen los requisitos de hardware</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>El sistema no cumple con los requisitos de hardware recomendados. Los informes de compatibilidad se han desactivado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Falta la cuenta de Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Para enviar un caso de prueba de compatibilidad de juegos, debes vincular tu cuenta de yuzu.&lt;br&gt;&lt;br/&gt; Para vincular tu cuenta de yuzu, ve a Emulación &amp;gt; Configuración &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Error al abrir la URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>No se puede abrir la URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Grabación TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>¿Sobrescribir archivo del jugador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Configuración no válida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>El controlador del modo portátil no puede ser usado en el modo sobremesa. Se seleccionará el controlador Pro en su lugar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>El amiibo actual ha sido eliminado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>El juego actual no está buscando amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Archivo amiibo (%1);; Todos los archivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Cargar amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Error al cargar los datos Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>El archivo seleccionado no es un amiibo válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>El archivo seleccionado ya se encuentra en uso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Ha ocurrido un error inesperado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Captura de pantalla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Imagen PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Estado TAS: ejecutando %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Estado TAS: grabando %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Estado TAS: inactivo %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Estado TAS: nulo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar de ejecutar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Iniciar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Pausar g&amp;rabación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>G&amp;rabar</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Creando: %n shader(s)</numerusform><numerusform>Construyendo: %n shader(s)</numerusform><numerusform>Construyendo: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escalado: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Velocidad: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Velocidad: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Juego: %1 FPS (desbloqueado)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Juego: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Fotogramas: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU ALTA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREMA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU ERROR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>SOBREMESA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>PORTÁTIL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>PRÓXIMO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICÚBICO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIANO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>NO AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUMEN: SILENCIO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUMEN: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmar la clave de rederivación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5604,37 +5643,37 @@ es lo que quieres hacer si es necesario.
Esto eliminará los archivos de las claves generadas automáticamente y volverá a ejecutar el módulo de derivación de claves.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Faltan fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Falta BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Falta BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - Falta PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Faltan componentes de derivación</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Faltan las claves de encriptación. &lt;br&gt;Por favor, sigue &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guía rápida de yuzu&lt;/a&gt; para obtener todas tus claves, firmware y juegos.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5643,49 +5682,49 @@ Esto puede llevar unos minutos dependiendo
del rendimiento de su sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Obtención de claves</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>Desencriptación del Sistema de Archivos Fallida</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>Las claves de encriptación no han podido desencriptar el firmware. &lt;br&gt;Por favor, siga&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guía de inicio rápido de yuzu&lt;/a&gt; para obtener todas tus claves, firmware y juegos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Selecciona el destinatario para volcar el RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Por favor, seleccione los RomFS que deseas volcar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>¿Estás seguro de que quieres cerrar yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>¿Estás seguro de que quieres detener la emulación? Cualquier progreso no guardado se perderá.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5693,48 +5732,143 @@ Would you like to bypass this and exit anyway?</source>
¿Quieres salir de todas formas?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Ninguno</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>Mas cercano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilineal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicúbico</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussiano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Sobremesa</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Portátil</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Alto</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Extremo</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Null</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>¡OpenGL no está disponible!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Los contextos compartidos de OpenGL no son compatibles.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu no ha sido compilado con soporte de OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>¡Error al inicializar OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Tu GPU no soporta OpenGL, o no tienes instalados los últimos controladores gráficos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>¡Error al iniciar OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Tu GPU no soporta OpenGL 4.6, o no tienes instalado el último controlador de la tarjeta gráfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Es posible que la GPU no soporte una o más extensiones necesarias de OpenGL . Por favor, asegúrate de tener los últimos controladores de la tarjeta gráfica.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensiones no soportadas:&lt;br&gt;%2</translation>
</message>
@@ -5794,7 +5928,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Quitar almacenamiento de caché</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6088,138 +6222,138 @@ Mensaje de depuración: </translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Activar/Desactivar audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Ventana principal</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Bajar volumen del audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Subir volumen del audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Captura de pantalla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Cambiar filtro adaptable</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Cambiar a modo sobremesa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Cambiar precisión de GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Continuar/Pausar emulación</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Salir de pantalla completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Cerrar yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Pantalla completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Cargar archivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Cargar/Eliminar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Reiniciar emulación</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Detener emulación</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Grabar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Reiniciar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Iniciar/detener TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Alternar barra de filtro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Alternar limite de fotogramas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Alternar desplazamiento del ratón</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Alternar barra de estado</translation>
</message>
@@ -6962,30 +7096,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[no definido]</translation>
</message>
@@ -6996,14 +7130,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Eje %1%2</translation>
</message>
@@ -7014,320 +7148,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[desconocido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Izquierda</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Derecha</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Abajo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Arriba</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Comenzar</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Círculo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Cruz</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Cuadrado</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triángulo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Compartir</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opciones</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[sin definir]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Rotación %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eje %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eje %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimiento %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Botón %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[no usado]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Palanca L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Palanca R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Más</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Menos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Inicio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Captura</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Táctil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Rueda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Atrás</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Adelante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Tarea</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Rotación %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3Axis %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Botón %4</translation>
</message>
diff --git a/dist/languages/fr.ts b/dist/languages/fr.ts
index 0046c3128..49d30137f 100644
--- a/dist/languages/fr.ts
+++ b/dist/languages/fr.ts
@@ -1136,78 +1136,78 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Configuration de yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Son</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Débogage</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Système de fichiers</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Général</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Vidéo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Graphismes avancés</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Raccourcis clavier</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Contrôles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profils</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Réseau</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Liste des jeux</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1401,17 +1401,22 @@ Cette option améliore la vitesse en réduisant la précision des instructions f
<translation>Cacher la souris en cas d&apos;inactivité</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation>Désactiver l&apos;applet du contrôleur</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Réinitialiser tous les paramètres</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Ceci réinitialise tout les paramètres et supprime toutes les configurations par jeu. Cela ne va pas supprimer les répertoires de jeu, les profils, ou les profils d&apos;entrée. Continuer ?</translation>
</message>
@@ -1702,43 +1707,43 @@ Immédiat (sans synchronisation) présente simplement ce qui est disponible et p
<translation>Couleur de L’arrière plan :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders en Assembleur, NVIDIA Seulement)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Expérimental, Mesa seulement)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Désactivé</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>VSync Désactivée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Recommandé</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>Activé</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>VSync Activée</translation>
</message>
@@ -1863,37 +1868,58 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
<translation>Activer les pipelines de calcul (uniquement pour Intel Vulkan)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>Éxécuter le jeu à une vitesse normale pendant la relecture du vidéo,
+même-ci la fréquence d&apos;image est dévérouillée. </translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>Synchro la fréquence d&apos;image de la relecture du vidéo</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>Améliore le rendu des effets de transparence dans des jeux spécifiques.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation>Boucles de rétroaction de barrière</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtrage anisotropique :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automatique</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Défaut</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2276,7 +2302,7 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configurer</translation>
</message>
@@ -2343,22 +2369,7 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
<translation>Utiliser un ID d&apos;Amiibo aléatoire</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Activer le mouvement panorama avec la souris</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensibilité de la souris</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>La motion / Toucher</translation>
</message>
@@ -2470,7 +2481,7 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Stick Gauche</translation>
</message>
@@ -2564,14 +2575,14 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2590,7 +2601,7 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -2603,15 +2614,15 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2668,247 +2679,257 @@ Les pipelines de calcul sont toujours activés sur tous les autres pilotes.</tra
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Stick Droit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation>Panoramique de la souris</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configurer</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Effacer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[non défini]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Inverser les boutons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Bouton d&apos;activation</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Bouton Turbo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Inverser l&apos;axe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Définir le seuil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Choisissez une valeur entre 0% et 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Basculer les axes</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Définir le seuil du gyroscope</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Calibrer le capteur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Mapper le stick analogique</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Après avoir appuyé sur OK, bougez d&apos;abord votre joystick horizontalement, puis verticalement.
Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis horizontalement.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Axe central</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Zone morte : %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modification de la course : %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Deux Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon de gauche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon de droit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Mode Portable</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Manette GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poké Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Manette NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Manette SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Manette N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Start / Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Stick de contrôle </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Secouez !</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[en attente]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nouveau Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Entrez un nom de profil :</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Créer un profil d&apos;entrée </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Le nom de profil donné est invalide !</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Échec de la création du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Supprimer le profil d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Échec de la suppression du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Charger le profil d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Échec du chargement du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Sauvegarder le profil d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Échec de la sauvegarde du profil d&apos;entrée &quot;%1&quot;</translation>
</message>
@@ -3088,6 +3109,81 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation>Configurer le panoramique de la souris</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Activer</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation>Peut être activé/désactivé via un raccourci clavier</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation>Sensibilité</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation>Horizontal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation>Vertical</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation>Contrepoids de zone morte</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation>Contrebalance la zone morte intégrée d&apos;un jeu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation>Dégradation du stick</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation>Force</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation>Minimum</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Défaut</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3163,47 +3259,47 @@ Pour inverser les axes, bougez d&apos;abord votre joystick verticalement, puis h
<translation>Développeur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Extensions</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Général</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Graphiques</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Adv. Graphiques</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Profils d&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Propriétés</translation>
</message>
@@ -3406,8 +3502,8 @@ UUID : %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Si vous souhaitez utiliser cette manette, configurez le joueur 1 comme manette droite et le joueur 2 comme double joycon avant de lancer le jeu pour permettre à cette manette d&apos;être détectée correctement.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation>Pour utiliser le Ring-Con, configurez le joueur 1 comme Joy-Con droit (à la fois physique et émulé), et le joueur 2 comme Joy-Con gauche (gauche physique et double émulé) avant de démarrer le jeu.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3443,7 +3539,7 @@ UUID : %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Activer</translation>
</message>
@@ -3510,12 +3606,17 @@ UUID : %2</translation>
<translation>L&apos;appareil actuellement mappé n&apos;a pas d&apos;anneau attaché</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation>L&apos;appareil actuellement mappé n&apos;est pas connecté</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Résultat de pilote inattendu %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[En attente]</translation>
</message>
@@ -4625,959 +4726,898 @@ Faites glisser les points pour modifier la position ou double-cliquez sur les ce
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Des données anonymes sont collectées&lt;/a&gt; pour aider à améliorer yuzu. &lt;br/&gt;&lt;br/&gt;Voulez-vous partager vos données d&apos;utilisations avec nous ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Télémétrie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Installation Vulkan Cassée Détectée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>L&apos;initialisation de Vulkan a échoué lors du démarrage.&lt;br&gt;&lt;br&gt;Cliquez &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;ici pour obtenir des instructions pour résoudre le problème&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation>Exécution d&apos;un jeu</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Chargement du Web Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Désactiver l&apos;applet web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>La désactivation de l&apos;applet Web peut entraîner un comportement indéfini et ne doit être utilisée qu&apos;avec Super Mario 3D All-Stars. Voulez-vous vraiment désactiver l&apos;applet Web ?
(Cela peut être réactivé dans les paramètres de débogage.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>La quantité de shaders en cours de construction</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Le multiplicateur de mise à l&apos;échelle de résolution actuellement sélectionné.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Valeur actuelle de la vitesse de l&apos;émulation. Des valeurs plus hautes ou plus basses que 100% indique que l&apos;émulation fonctionne plus vite ou plus lentement qu&apos;une véritable Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Combien d&apos;image par seconde le jeu est en train d&apos;afficher. Ceci vas varier de jeu en jeu et de scènes en scènes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Temps pris pour émuler une image par seconde de la switch, sans compter le limiteur d&apos;image par seconde ou la synchronisation verticale. Pour une émulation à pleine vitesse, ceci devrait être au maximum à 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Remettre le son</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Couper le son</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Réinitialiser le volume</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Effacer les fichiers récents</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>La souris émulée est activée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>La saisie réelle de la souris et le panoramique de la souris sont incompatibles. Veuillez désactiver la souris émulée dans les paramètres avancés d&apos;entrée pour permettre le panoramique de la souris.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Continuer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pause</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu exécute un jeu</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Avertissement : Le Format de jeu est dépassé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Vous utilisez un format de ROM déconstruite pour ce jeu, qui est donc un format dépassé qui à été remplacer par d&apos;autre. Par exemple les formats NCA, NAX, XCI, ou NSP. Les destinations de ROM déconstruites manque des icônes, des métadonnée et du support de mise à jour.&lt;br&gt;&lt;br&gt;Pour une explication des divers formats Switch que yuzu supporte, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Regardez dans le wiki&lt;/a&gt;. Ce message ne sera pas montré une autre fois.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Erreur lors du chargement de la ROM !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Le format de la ROM n&apos;est pas supporté.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Une erreur s&apos;est produite lors de l&apos;initialisation du noyau dédié à la vidéo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu a rencontré une erreur en exécutant le cœur vidéo. Cela est généralement causé par des pilotes graphiques trop anciens. Veuillez consulter les logs pour plus d&apos;informations. Pour savoir comment accéder aux logs, veuillez vous référer à la page suivante : &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Comment partager un fichier de log &lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Erreur lors du chargement de la ROM ! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Veuillez suivre &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;le guide de démarrage rapide yuzu&lt;/a&gt; pour retransférer vos fichiers.&lt;br&gt;Vous pouvez vous référer au wiki yuzu&lt;/a&gt; ou le Discord yuzu&lt;/a&gt; pour de l&apos;assistance.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Une erreur inconnue est survenue. Veuillez consulter le journal des logs pour plus de détails.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Fermeture du logiciel...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Enregistrer les données</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Donnés du Mod</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Erreur dans l&apos;ouverture du dossier %1.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Le dossier n&apos;existe pas !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Erreur lors de l&apos;ouverture des Shader Cache Transferable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Impossible de créer le dossier de cache du shader pour ce jeu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Erreur en enlevant le contenu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Erreur en enlevant la Mise à Jour</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Erreur en enlevant le DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Enlever les données du jeu installé ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Enlever la mise à jour du jeu installé ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Enlever le DLC du jeu installé ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Supprimer l&apos;entrée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Supprimé avec succès</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Suppression du jeu de base installé avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Le jeu de base n&apos;est pas installé dans la NAND et ne peut pas être supprimé.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Suppression de la mise à jour installée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Il n&apos;y a pas de mise à jour installée pour ce titre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Il n&apos;y a pas de DLC installé pour ce titre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Suppression de %1 DLC installé(s) avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Supprimer la Cache OpenGL de Shader Transférable?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Supprimer la Cache Vulkan de Shader Transférable?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Supprimer Toutes les Caches de Shader Transférable?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Supprimer la configuration personnalisée du jeu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation>Supprimer le stockage du cache ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Supprimer fichier</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Erreur lors de la suppression du cache de shader transférable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Un shader cache pour ce titre n&apos;existe pas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Suppression du cache de shader transférable avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Échec de la suppression du cache de shader transférable.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Erreur lors de la suppression du cache de pipeline de pilotes Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Échec de la suppression du cache de pipeline de pilotes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Erreur durant la Suppression des Caches de Shader Transférable</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Suppression des caches de shader transférable effectuée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Impossible de supprimer le dossier de la cache de shader transférable.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Erreur lors de la suppression de la configuration personnalisée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Il n&apos;existe pas de configuration personnalisée pour ce titre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Suppression de la configuration de jeu personnalisée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Échec de la suppression de la configuration personnalisée du jeu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>L&apos;extraction de la RomFS a échoué !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Une erreur s&apos;est produite lors de la copie des fichiers RomFS ou l&apos;utilisateur a annulé l&apos;opération.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Plein</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Squelette</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Sélectionnez le mode d&apos;extraction de la RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Veuillez sélectionner la manière dont vous souhaitez que le fichier RomFS soit extrait.&lt;br&gt;Full copiera tous les fichiers dans le nouveau répertoire, tandis que&lt;br&gt;skeleton créera uniquement la structure de répertoires.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Il n&apos;y a pas assez d&apos;espace libre dans %1 pour extraire la RomFS. Veuillez libérer de l&apos;espace ou sélectionner un autre dossier d&apos;extraction dans Émulation &gt; Configurer &gt; Système &gt; Système de fichiers &gt; Extraire la racine</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extraction de la RomFS ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Annuler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extraction de la RomFS réussi !</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>L&apos;opération s&apos;est déroulée avec succès.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Créer un raccourci</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Cela créera un raccourci vers l&apos;AppImage actuelle. Cela peut ne pas fonctionner correctement si vous mettez à jour. Continuer ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Impossible de créer un raccourci sur le bureau. Le chemin &quot;%1&quot; n&apos;existe pas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Impossible de créer un raccourci dans le menu des applications. Le chemin &quot;%1&quot; n&apos;existe pas et ne peut pas être créé.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Créer une icône</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Impossible de créer le fichier d&apos;icône. Le chemin &quot;%1&quot; n&apos;existe pas et ne peut pas être créé.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Démarrer %1 avec l&apos;émulateur Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Impossible de créer un raccourci vers %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Création réussie d&apos;un raccourci vers %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Erreur lors de l&apos;ouverture %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Sélectionner un répertoire</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Propriétés</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Les propriétés du jeu n&apos;ont pas pu être chargées.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Exécutable Switch (%1);;Tous les fichiers (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Charger un fichier</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Ouvrir le dossier des ROM extraites</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Destination sélectionnée invalide</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Le répertoire que vous avez sélectionné ne contient pas de fichier &quot;main&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Fichier Switch installable (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Installer les fichiers</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n fichier restant</numerusform><numerusform>%n fichiers restants</numerusform><numerusform>%n fichiers restants</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installation du fichier &quot;%1&quot; ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Résultats d&apos;installation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Pour éviter d&apos;éventuels conflits, nous déconseillons aux utilisateurs d&apos;installer des jeux de base sur la NAND.
Veuillez n&apos;utiliser cette fonctionnalité que pour installer des mises à jour et des DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n fichier a été nouvellement installé</numerusform><numerusform>%n fichiers ont été nouvellement installés</numerusform><numerusform>%n fichiers ont été nouvellement installés</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n fichier a été écrasé</numerusform><numerusform>%n fichiers ont été écrasés</numerusform><numerusform>%n fichiers ont été écrasés</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n fichier n&apos;a pas pu être installé</numerusform><numerusform>%n fichiers n&apos;ont pas pu être installés</numerusform><numerusform>%n fichiers n&apos;ont pas pu être installés</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Application Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Archive Système</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Mise à jour de l&apos;application système</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Paquet micrologiciel (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Paquet micrologiciel (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Mise à jour de jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC de jeu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Titre Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Sélectionner le type d&apos;installation du NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Veuillez sélectionner le type de titre auquel vous voulez installer ce NCA :
(Dans la plupart des cas, le titre par défaut : &apos;Jeu&apos; est correct.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Échec de l&apos;installation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Le type de titre que vous avez sélectionné pour le NCA n&apos;est pas valide.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Fichier non trouvé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Fichier &quot;%1&quot; non trouvé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Éxigences matérielles non respectées</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Votre système ne correspond pas aux éxigences matérielles. Les rapports de comptabilité ont été désactivés.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Compte yuzu manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Pour soumettre un test de compatibilité pour un jeu, vous devez lier votre compte yuzu.&lt;br&gt;&lt;br/&gt;Pour lier votre compte yuzu, aller à Emulation &amp;gt; Configuration&amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Erreur lors de l&apos;ouverture de l&apos;URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Impossible d&apos;ouvrir l&apos;URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Enregistrement TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Écraser le fichier du joueur 1 ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Configuration invalide détectée</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Contrôleur portable ne peut pas être utilisé en mode téléviseur. La manette Pro sera sélectionnée.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>L&apos;amiibo actuel a été retiré</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Erreur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Le jeu actuel ne cherche pas d&apos;amiibos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Fichier Amiibo (%1);; Tous les fichiers (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Charger un Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Erreur lors du chargement des données Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Le fichier choisi n&apos;est pas un amiibo valide</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Le fichier sélectionné est déjà utilisé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Une erreur inconnue s&apos;est produite</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Capture d&apos;écran</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Image PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>État du TAS : En cours d&apos;exécution %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>État du TAS : Enregistrement %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>État du TAS : Inactif %1:%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>État du TAS : Invalide</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Stopper l&apos;exécution</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Stopper l&apos;en&amp;registrement</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>En&amp;registrer</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Compilation: %n shader</numerusform><numerusform>Compilation : %n shaders</numerusform><numerusform>Compilation : %n shaders</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Échelle : %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Vitesse : %1% / %2% </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Vitesse : %1% </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Jeu : %1 IPS (Débloqué)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Jeu : %1 FPS </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Frame : %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU HAUT</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTRÊME</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU ERREUR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>MODE TV</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>PORTABLE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>PLUS PROCHE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINÉAIRE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBIQUE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIEN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>AUCUN AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUME: MUET</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUME: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmer la réinstallation de la clé</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5594,37 +5634,37 @@ et éventuellement faites des sauvegardes.
Cela supprimera vos fichiers de clé générés automatiquement et ré exécutera le module d&apos;installation de clé.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Fusibles manquants</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO manquant</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Composants de dérivation manquants</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Les clés de chiffrement sont manquantes. &lt;br&gt;Veuillez suivre &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;le guide de démarrage rapide yuzu&lt;/a&gt; pour obtenir tous vos clés, firmware et jeux.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5633,49 +5673,49 @@ Cela peut prendre jusqu&apos;à une minute en fonction
des performances de votre système.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Installation des clés</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>Échec du déchiffrement de l&apos;archive système.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>Les clés de chiffrement n&apos;ont pas réussi à déchiffrer le firmware. &lt;br&gt;Veuillez suivre &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;le guide de démarrage rapide du yuzu&lt;/a&gt; pour obtenir toutes vos clés, firmware et jeux.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Sélectionner la cible d&apos;extraction du RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Veuillez sélectionner quel RomFS vous voulez extraire.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Êtes vous sûr de vouloir fermer yuzu ?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Êtes-vous sûr d&apos;arrêter l&apos;émulation ? Tout progrès non enregistré sera perdu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5683,48 +5723,143 @@ Would you like to bypass this and exit anyway?</source>
Voulez-vous ignorer ceci and quitter quand même ?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Aucune</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>Le plus proche</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinéaire</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubique</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussien</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Mode TV</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Mode Portable</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Haut</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Extême</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Nul</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL n&apos;est pas disponible !</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Les contextes OpenGL partagés ne sont pas pris en charge.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu n&apos;a pas été compilé avec le support OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Erreur lors de l&apos;initialisation d&apos;OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Votre GPU peut ne pas prendre en charge OpenGL, ou vous n&apos;avez pas les derniers pilotes graphiques.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erreur lors de l&apos;initialisation d&apos;OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Votre GPU peut ne pas prendre en charge OpenGL 4.6 ou vous ne disposez pas du dernier pilote graphique: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Votre GPU peut ne pas prendre en charge une ou plusieurs extensions OpenGL requises. Veuillez vous assurer que vous disposez du dernier pilote graphique.&lt;br&gt;&lt;br&gt;GL Renderer :&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensions non prises en charge :&lt;br&gt;%2</translation>
</message>
@@ -6078,138 +6213,138 @@ Message de débogage : </translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Désactiver/Activer le Son</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Fenêtre Principale</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Baisser le volume audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Augmenter le volume audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Prendre une capture d&apos;ecran</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Modifier le filtre d&apos;adaptation</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Changer le mode de la station d&apos;accueil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Modifier la précision du GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Continuer/Suspendre l&apos;Émulation</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Quitter le plein écran</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Quitter yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Plein écran</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Charger un fichier</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Charger/Supprimer un Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Redémarrer l&apos;Émulation</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Arrêter l&apos;Émulation</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Enregistrement TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Réinitialiser le TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Démarrer/Arrêter le TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Activer la barre de filtre</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Activer la limite de fréquence d&apos;images</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Activer le panoramique de la souris</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Activer la barre d&apos;état</translation>
</message>
@@ -6952,30 +7087,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Maj</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[non défini]</translation>
</message>
@@ -6986,14 +7121,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Axe %1%2</translation>
</message>
@@ -7004,320 +7139,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[inconnu]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Gauche</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Droite</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Bas</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Haut</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Cercle</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Croix</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Carré</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triangle</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Partager</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[non défini]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[invalide]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Chapeau %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axe %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axe %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Mouvement %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Bouton %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[inutilisé]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Stick Gauche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Stick Droit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Moins</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Capturer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Tactile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Molette</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Reculer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Avancer</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Tâche</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Chapeau %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3Axe %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Bouton %4</translation>
</message>
diff --git a/dist/languages/id.ts b/dist/languages/id.ts
index eefc9de49..374b18402 100644
--- a/dist/languages/id.ts
+++ b/dist/languages/id.ts
@@ -1093,78 +1093,78 @@ Memungkinkan berbagai macam optimasi IR.</translation>
<translation>Komfigurasi yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Awakutu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Sistem berkas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Umum</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GrafisLanjutan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Pintasan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Kendali</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Jaringan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Daftar Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Jejaring</translation>
</message>
@@ -1358,17 +1358,22 @@ Memungkinkan berbagai macam optimasi IR.</translation>
<translation>Sembunyikan mouse saat tidak aktif</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Atur Ulang Semua Pengaturan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation type="unfinished"/>
</message>
@@ -1656,43 +1661,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Warna Latar:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shader perakit, hanya NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1816,37 +1821,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotropic Filtering:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Otomatis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Bawaan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2229,7 +2254,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Konfigurasi</translation>
</message>
@@ -2296,22 +2321,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Nyalakan geseran tetikus</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensitivitas mouse</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Gerakan / Sentuhan</translation>
</message>
@@ -2423,7 +2433,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Stik Kiri</translation>
</message>
@@ -2517,14 +2527,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2543,7 +2553,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Tambah</translation>
</message>
@@ -2556,15 +2566,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2621,247 +2631,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Stik Kanan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Konfigurasi</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Bersihkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[belum diatur]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Balikkan tombol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Atur tombol</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Balikkan poros</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Atur batasan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Pilih sebuah angka diantara 0% dan 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Petakan Stik Analog</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Setelah menekan OK, pertama gerakkan joystik secara mendatar, lalu tegak lurus.
Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu mendatar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Titik Mati: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Rentang Pengubah: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Kontroler Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joycon Dual</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon Kiri</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon Kanan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Jinjing</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Kontroler GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Kontroler NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Kontroler SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Kontroler N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Mulai / Jeda</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Stik Kendali</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Getarkan!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[menunggu]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Profil Baru</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Masukkan nama profil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Ciptakan Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Nama profil yang diberi tidak sah!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Gagal membuat profil masukan &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Hapus Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Gagal menghapus profil masukan &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Muat Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Gagal memuat profil masukan &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Simpat Profil Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Gagal menyimpan profil masukan &quot;%1&quot;</translation>
</message>
@@ -3041,6 +3061,81 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Bawaan</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3116,47 +3211,47 @@ Untuk membalikkan sumbu, pertama gerakkan joystik secara tegak lurus, lalu menda
<translation>Pengembang</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Pengaya (Add-On)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Umum</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Ljtan. Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Properti</translation>
</message>
@@ -3358,7 +3453,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3395,7 +3490,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3462,12 +3557,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[menunggu]</translation>
</message>
@@ -4576,960 +4676,899 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Data anonim dikumpulkan&lt;/a&gt; untuk membantu yuzu. &lt;br/&gt;&lt;br/&gt;Apa Anda ingin membagi data penggunaan dengan kami?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Memuat Applet Web...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Matikan Applet Web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Jumlah shader yang sedang dibuat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Pengali skala resolusi yang terpilih.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Kecepatan emulasi saat ini. Nilai yang lebih tinggi atau rendah dari 100% menandakan pengemulasian berjalan lebih cepat atau lambat dibanding Switch aslinya.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Berapa banyak frame per second (bingkai per detik) permainan akan ditampilkan. Ini akan berubah dari berbagai permainan dan pemandangan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Waktu yang diperlukan untuk mengemulasikan bingkai Switch, tak menghitung pembatas bingkai atau v-sync. Agar emulasi berkecepatan penuh, ini harus 16.67 mdtk.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Bersihkan Berkas Baru-baru Ini</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Lanjutkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Jeda</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu sedang menjalankan game</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Peringatan Format Permainan yang Usang</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Anda menggunakan format direktori ROM yang sudah didekonstruksi untuk permainan ini, yang mana itu merupakan format lawas yang sudah tergantikan oleh yang lain seperti NCA, NAX, XCI, atau NSP. Direktori ROM yang sudah didekonstruksi kekurangan ikon, metadata, dan dukungan pembaruan.&lt;br&gt;&lt;br&gt;Untuk penjelasan berbagai format Switch yang didukung yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;periksa wiki kami&lt;/a&gt;. Pesan ini tidak akan ditampilkan lagi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Kesalahan ketika memuat ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Format ROM tak didukung.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Terjadi kesalahan ketika menginisialisasi inti video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu telah mengalami error saat menjalankan inti video. Ini biasanya disebabkan oleh pemicu piranti (driver) GPU yang usang, termasuk yang terintegrasi. Mohon lihat catatan untuk informasi lebih rinci. Untuk informasi cara mengakses catatan, mohon lihat halaman berikut: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Cara Mengupload Berkas Catatan&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Terjadi kesalahan yang tak diketahui. Mohon lihat catatan untuk informasi lebih rinci.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Simpan Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Gagal Membuka Folder %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Folder tak ada!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Gagal Ketika Membuka Tembolok Shader yang Dapat Ditransfer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Hapus Masukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Tidak ada DLC yang terinstall untuk judul ini.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Hapus File</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Kesalahan Menghapus Transferable Shader Cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Cache shader bagi judul ini tidak ada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Kesalahan Menghapus Konfigurasi Buatan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Pengekstrakan RomFS Gagal!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Terjadi kesalahan ketika menyalin berkas RomFS atau dibatalkan oleh pengguna.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Penuh</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Skeleton</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Pilih Mode Dump RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Mohon pilih cara RomFS akan di-dump.&lt;br&gt;FPenuh akan menyalin seluruh berkas ke dalam direktori baru sementara &lt;br&gt;jerangkong hanya akan menciptakan struktur direktorinya saja.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Mengekstrak RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Batal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Pengekstrakan RomFS Berhasil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Operasi selesai dengan sukses,</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Gagal membuka %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Pilih Direktori</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Properti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Properti permainan tak dapat dimuat.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Eksekutabel Switch (%1);;Semua Berkas (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Muat Berkas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Buka Direktori ROM Terekstrak</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Direktori Terpilih Tidak Sah</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Direktori yang Anda pilih tak memiliki berkas &apos;utama.&apos;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Install File</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Memasang berkas &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Hasil Install</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n file(s) baru diinstall
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n file(s) telah ditimpa
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n file(s) gagal di install
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Aplikasi Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Arsip Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Pembaruan Aplikasi Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Paket Perangkat Tegar (Tipe A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Paket Perangkat Tegar (Tipe B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Pembaruan Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC Permainan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Judul Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Pilih Tipe Pemasangan NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Mohon pilih jenis judul yang Anda ingin pasang sebagai NCA ini:
(Dalam kebanyakan kasus, pilihan bawaan &apos;Permainan&apos; tidak apa-apa`.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Gagal Memasang</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Jenis judul yang Anda pilih untuk NCA tidak sah.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Berkas tak ditemukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Berkas &quot;%1&quot; tak ditemukan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Akun yuzu Hilang</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Agar dapat mengirimkan berkas uju kompatibilitas permainan, Anda harus menautkan akun yuzu Anda.&lt;br&gt;&lt;br/&gt;TUntuk mennautkan akun yuzu Anda, pergi ke Emulasi &amp;gt; Konfigurasi &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Kesalahan saat membuka URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Tidak dapat membuka URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Rekaman TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Timpa file pemain 1? </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Konfigurasi tidak sah terdeteksi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Kontroller jinjing tidak bisa digunakan dalam mode dock. Kontroller Pro akan dipilih</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Berkas Amiibo (%1);; Semua Berkas (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Muat Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Gagal memuat data Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Tangkapan Layar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Berkas PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Status TAS: Berjalan %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Status TAS: Merekam %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Status TAS: Diam %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Status TAS: Tidak Valid</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Matikan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Mulai</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Berhenti Mer&amp;ekam</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>R&amp;ekam</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Membangun: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Skala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Kecepatan: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Kecepatan: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Permainan: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU TINGGI</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EKSTRIM</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>KESALAHAN GPU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NEAREST</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBIC</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>TANPA AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5540,133 +5579,230 @@ This will delete your autogenerated key files and re-run the key derivation modu
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Kehilangan BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Kehilangan BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- Kehilangan PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
- <translation type="unfinished"/>
+ <translation>Memuat kunci...
+Ini mungkin memakan waktu hingga satu menit
+tergantung dari sistem performa Anda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
- <translation type="unfinished"/>
+ <translation>Pilih Target Dump RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
- <translation type="unfinished"/>
+ <translation>Silahkan pilih jenis RomFS yang ingin Anda buang.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Apakah anda yakin ingin menutup yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
- <translation type="unfinished"/>
+ <translation>Apakah Anda yakin untuk menghentikan emulasi? Setiap progres yang tidak tersimpan akan hilang.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
<translation type="unfinished"/>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Tak ada</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Biliner</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bikubik</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussian</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Terpasang</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Jinjing</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL tidak tersedia!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Terjadi kesalahan menginisialisasi OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>VGA anda mungkin tidak mendukung OpenGL, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Terjadi kesalahan menginisialisasi OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>VGA anda mungkin tidak mendukung OpenGL 4.6, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.&lt;br&gt;&lt;br&gt;Pemuat GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>VGA anda mungkin tidak mendukung satu atau lebih ekstensi OpenGL. Mohon pastikan bahwa anda memiliki pemacu piranti (driver) grafis terbaharu.&lt;br&gt;&lt;br&gt;Pemuat GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ekstensi yang tidak didukung:&lt;br&gt;%2</translation>
</message>
@@ -5746,13 +5882,13 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="552"/>
<source>Remove All Installed Contents</source>
- <translation type="unfinished"/>
+ <translation>Hapus semua konten terinstall.</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="553"/>
<location filename="../../src/yuzu/game_list.cpp" line="554"/>
<source>Dump RomFS</source>
- <translation type="unfinished"/>
+ <translation>Dump RomFS</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="555"/>
@@ -5762,12 +5898,12 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="556"/>
<source>Copy Title ID to Clipboard</source>
- <translation type="unfinished"/>
+ <translation>Salin Judul ID ke Clipboard.</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="557"/>
<source>Navigate to GameDB entry</source>
- <translation type="unfinished"/>
+ <translation>Pindah ke tampilan GameDB</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="559"/>
@@ -5812,7 +5948,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="670"/>
<source>Open Directory Location</source>
- <translation type="unfinished"/>
+ <translation>Buka Lokasi Direktori</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="715"/>
@@ -5837,7 +5973,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="782"/>
<source>File type</source>
- <translation type="unfinished"/>
+ <translation>Tipe berkas</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="783"/>
@@ -5895,17 +6031,17 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="156"/>
<source>The game crashes when attempting to startup.</source>
- <translation type="unfinished"/>
+ <translation>Gim rusak saat mencoba untuk memulai.</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="157"/>
<source>Not Tested</source>
- <translation type="unfinished"/>
+ <translation>Belum dites</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="157"/>
<source>The game has not yet been tested.</source>
- <translation type="unfinished"/>
+ <translation>Gim belum pernah dites.</translation>
</message>
</context>
<context>
@@ -5913,7 +6049,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="956"/>
<source>Double-click to add a new folder to the game list</source>
- <translation type="unfinished"/>
+ <translation>Klik dua kali untuk menambahkan folder sebagai daftar permainan.</translation>
</message>
</context>
<context>
@@ -5931,7 +6067,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="796"/>
<source>Enter pattern to filter</source>
- <translation type="unfinished"/>
+ <translation>Masukkan pola untuk memfilter</translation>
</message>
</context>
<context>
@@ -6019,138 +6155,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Tangkapan Layar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Muat Berkas</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6202,7 +6338,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/loading_screen.ui" line="135"/>
<source>Estimated Time 5m 4s</source>
- <translation type="unfinished"/>
+ <translation>Waktu yang diperlukan 5m 4d</translation>
</message>
<message>
<location filename="../../src/yuzu/loading_screen.cpp" line="83"/>
@@ -6464,7 +6600,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/main.ui" line="262"/>
<source>Show Status Bar</source>
- <translation type="unfinished"/>
+ <translation>Munculkan Status Bar</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="270"/>
@@ -6874,7 +7010,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/game_list_p.h" line="303"/>
<source>Add New Game Directory</source>
- <translation type="unfinished"/>
+ <translation>Tambahkan direktori permainan</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="326"/>
@@ -6884,30 +7020,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
- <translation type="unfinished"/>
+ <translation>Ubah</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
- <translation type="unfinished"/>
+ <translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[belum diatur]</translation>
</message>
@@ -6918,14 +7054,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation type="unfinished"/>
</message>
@@ -6936,320 +7072,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
- <translation type="unfinished"/>
+ <translation>[tidak diketahui]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Kiri</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Kanan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Bawah</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Atas</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Mulai</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Gerakan %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Tambah</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Kurang</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Tangkapan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Sentuh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
@@ -7672,7 +7808,7 @@ Please try again or contact the developer of the software.</source>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="170"/>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="188"/>
<source>Profile Selector</source>
- <translation type="unfinished"/>
+ <translation>Pemilih Profil</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="173"/>
@@ -7732,7 +7868,7 @@ Please try again or contact the developer of the software.</source>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="226"/>
<source>Select a user:</source>
- <translation type="unfinished"/>
+ <translation>Pilih akun:</translation>
</message>
</context>
<context>
@@ -7773,7 +7909,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/util/sequence_dialog/sequence_dialog.cpp" line="10"/>
<source>Enter a hotkey</source>
- <translation type="unfinished"/>
+ <translation>Masukkan hotkey.</translation>
</message>
</context>
<context>
@@ -7817,12 +7953,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/debugger/wait_tree.cpp" line="213"/>
<source>waiting for IPC reply</source>
- <translation type="unfinished"/>
+ <translation>menunggu respon IPC</translation>
</message>
<message>
<location filename="../../src/yuzu/debugger/wait_tree.cpp" line="216"/>
<source>waiting for objects</source>
- <translation type="unfinished"/>
+ <translation>Menunggu objek</translation>
</message>
<message>
<location filename="../../src/yuzu/debugger/wait_tree.cpp" line="219"/>
diff --git a/dist/languages/it.ts b/dist/languages/it.ts
index ab3aa7611..fbd1247f6 100644
--- a/dist/languages/it.ts
+++ b/dist/languages/it.ts
@@ -242,67 +242,67 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.</trans
<message>
<location filename="../../src/yuzu/compatdb.ui" line="77"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game boot?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>il gioco parte?</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="100"/>
<source>Yes The game starts to output video or audio</source>
- <translation type="unfinished"/>
+ <translation>Sì Il gioco inizia a produrre video o audio</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="107"/>
<source>No The game doesn&apos;t get past the &quot;Launching...&quot; screen</source>
- <translation type="unfinished"/>
+ <translation>No il gioco non passa avanti la schermata d&apos;avvio </translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="124"/>
<source>Yes The game gets past the intro/menu and into gameplay</source>
- <translation type="unfinished"/>
+ <translation>sì il gioco passa l&apos;intro/menu e va nel gameplay </translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="131"/>
<source>No The game crashes or freezes while loading or using the menu</source>
- <translation type="unfinished"/>
+ <translation>no il gioco si freeza e crasha durante il caricamento o usando il menu</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="143"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game reach gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>il gioco arriva al gameplay?</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="176"/>
<source>Yes The game works without crashes</source>
- <translation type="unfinished"/>
+ <translation>si il gioco funziona senza crashare</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="183"/>
<source>No The game crashes or freezes during gameplay</source>
- <translation type="unfinished"/>
+ <translation>no il gioco crasha/si blocca durante il gameplay </translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="195"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game work without crashing, freezing or locking up during gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>Il gioco funziona senza crashare o bloccarsi durante il gameplay?</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="228"/>
<source>Yes The game can be finished without any workarounds</source>
- <translation type="unfinished"/>
+ <translation>Sì Il gioco può essere finito senza alcuna soluzione alternativa</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="235"/>
<source>No The game can&apos;t progress past a certain area</source>
- <translation type="unfinished"/>
+ <translation>no il gioco non va avanti dopo una certa area</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="247"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Is the game completely playable from start to finish?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>Il gioco è completamente giocabile dall&apos;inizio alla fine?</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="280"/>
<source>Major The game has major graphical errors</source>
- <translation type="unfinished"/>
+ <translation>il gioco ha gravi errori grafici</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="287"/>
@@ -1122,78 +1122,78 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.</trans
<translation>Configurazione di yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Filesystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Generale</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Grafica avanzata</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Scorciatoie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Comandi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profili</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Rete</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Lista dei giochi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1387,17 +1387,22 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.</trans
<translation>Nascondi il puntatore del mouse se inattivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Ripristina tutte le impostazioni</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Tutte le impostazioni verranno ripristinate e tutte le configurazioni dei giochi verranno rimosse. Le cartelle di gioco, i profili e i profili di input non saranno cancellati. Vuoi procedere?</translation>
</message>
@@ -1463,7 +1468,7 @@ Questo bannerà sia il suo nome utente del forum che il suo indirizzo IP.</trans
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="209"/>
<source>VSync Mode:</source>
- <translation type="unfinished"/>
+ <translation>Modalità VSync:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
@@ -1685,43 +1690,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Colore dello sfondo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (shader assembly, solo NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (sperimentale, solo Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1751,27 +1756,27 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="90"/>
<source>ASTC recompression:</source>
- <translation type="unfinished"/>
+ <translation>Ricompressione ASTC:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
<source>Uncompressed (Best quality)</source>
- <translation type="unfinished"/>
+ <translation>Nessuna compressione (qualità migliore)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation type="unfinished"/>
+ <translation>BC1 (qualità bassa)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation type="unfinished"/>
+ <translation>BC3 (qualità media)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
<source>Enable asynchronous presentation (Vulkan only)</source>
- <translation type="unfinished"/>
+ <translation>Abilita la presentazione asincrona (solo Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="126"/>
@@ -1845,37 +1850,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtro anisotropico:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automatico</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Predefinito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2258,7 +2283,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configura</translation>
</message>
@@ -2325,22 +2350,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Abilita il mouse panning</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensibilità del mouse</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Movimento/tocco</translation>
</message>
@@ -2452,7 +2462,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Levetta sinistra</translation>
</message>
@@ -2546,14 +2556,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2572,7 +2582,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Più</translation>
</message>
@@ -2585,15 +2595,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2650,247 +2660,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Levetta destra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configura</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Cancella</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[non impost.]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Inverti pulsante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Premi il pulsante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Inverti asse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Imposta soglia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Scegli un valore compreso tra 0% e 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Mappa la levetta analogica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Dopo aver premuto OK, prima muovi la levetta orizzontalmente, e poi verticalmente.
Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Centra asse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Zona morta: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modifica raggio: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Due Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon sinistro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon destro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Portatile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Controller GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poké Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Controller NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Controller SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Controller N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Avvia / Metti in pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Levetta di Controllo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>Levetta C</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Scuoti!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[in attesa]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nuovo profilo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Inserisci un nome profilo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Crea un profilo di input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Il nome profilo inserito non è valido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Impossibile creare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Elimina un profilo di input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Impossibile eliminare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Carica un profilo di input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Impossibile caricare il profilo di input &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Salva un profilo di Input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Impossibile creare il profilo di input &quot;%1&quot;</translation>
</message>
@@ -3070,6 +3090,81 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Abilita</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Predefinito</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3145,47 +3240,47 @@ Per invertire gli assi, prima muovi la levetta verticalmente, e poi orizzontalme
<translation>Sviluppatore</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Add-on</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Generale</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafica</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Grafica (Avanzate)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Profili di input</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Proprietà</translation>
</message>
@@ -3388,7 +3483,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3425,7 +3520,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Abilita</translation>
</message>
@@ -3492,12 +3587,17 @@ UUID: %2</translation>
<translation>L&apos;attuale dispositivo mappato non è collegato a un Ring-Con</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Risultato imprevisto del driver: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[in attesa]</translation>
</message>
@@ -3908,7 +4008,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="484"/>
<source>Unsafe extended memory layout (8GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Layout di memoria esteso non sicuro (8GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="519"/>
@@ -4607,559 +4707,574 @@ Trascina i punti per cambiare posizione, oppure clicca due volte la cella in tab
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Vengono raccolti dati anonimi&lt;/a&gt; per aiutarci a migliorare yuzu. &lt;br/&gt;&lt;br/&gt;Desideri condividere i tuoi dati di utilizzo con noi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Rilevata installazione di Vulkan non funzionante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>L&apos;inizializzazione di Vulkan è fallita durante l&apos;avvio.&lt;br&gt;&lt;br&gt;Clicca &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;qui per istruzioni su come risolvere il problema&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Caricamento dell&apos;applet web...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Disabilita l&apos;applet web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Il numero di shaders al momento in costruzione</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocità corrente dell&apos;emulazione. Valori più alti o più bassi di 100% indicano che l&apos;emulazione sta funzionando più velocemente o lentamente rispetto a una Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Il numero di fotogrammi al secondo che il gioco visualizza attualmente. Può variare in base al gioco e alla situazione.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tempo necessario per emulare un fotogramma della Switch, senza tenere conto del limite al framerate o del V-Sync. Per un&apos;emulazione alla massima velocità, il valore non dovrebbe essere superiore a 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Cancella i file recenti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Continua</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Formato del gioco obsoleto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Stai usando una cartella con dentro una ROM decostruita come formato per avviare questo gioco, è un formato obsoleto ed è stato sostituito da altri come NCA, NAX, XCI o NSP. Le ROM decostruite non hanno icone, metadata e non supportano gli aggiornamenti. &lt;br&gt;&lt;br&gt;Per una spiegazione sui vari formati di Switch che yuzu supporta, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;controlla la nostra wiki&lt;/a&gt;. Questo messaggio non verrà più mostrato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Errore nel caricamento della ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Il formato della ROM non è supportato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>È stato riscontrato un errore nell&apos;inizializzazione del core video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Errore nel caricamento della ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Segui &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guida introduttiva di yuzu&lt;/a&gt; per rifare il dump dei file.&lt;br&gt;Puoi fare riferimento alla wiki di yuzu&lt;/a&gt; o al server Discord di yuzu&lt;/a&gt; per assistenza.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Si è verificato un errore sconosciuto. Visualizza il log per maggiori dettagli.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Chiusura del software in corso...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Dati di salvataggio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Dati delle mod</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Impossibile aprire la cartella %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>La cartella non esiste!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Impossibile aprire la cache trasferibile degli shader</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Impossibile creare la cartella della cache degli shader per questo titolo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Impossibile rimuovere il contentuto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Impossibile rimuovere l&apos;aggiornamento</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Impossibile rimuovere il DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Rimuovere il contenuto del gioco installato?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Rimuovere l&apos;aggiornamento installato?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Rimuovere il DLC installato?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Rimuovi voce</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Rimozione completata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Il gioco base installato è stato rimosso con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Il gioco base non è installato su NAND e non può essere rimosso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Aggiornamento rimosso con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Non c&apos;è alcun aggiornamento installato per questo gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Non c&apos;è alcun DLC installato per questo gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 DLC rimossi con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Vuoi rimuovere la cache trasferibile degli shader OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Vuoi rimuovere la cache trasferibile degli shader Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Vuoi rimuovere tutte le cache trasferibili degli shader?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Rimuovere la configurazione personalizzata del gioco?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Rimuovi file</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Impossibile rimuovere la cache trasferibile degli shader</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Per questo titolo non esiste una cache degli shader.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>La cache trasferibile degli shader è stata rimossa con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Impossibile rimuovere la cache trasferibile degli shader.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Impossibile rimuovere la cache delle pipeline del driver Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Impossibile rimuovere la cache delle pipeline del driver.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Impossibile rimuovere le cache trasferibili degli shader</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Le cache trasferibili degli shader sono state rimosse con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Impossibile rimuovere la cartella della cache trasferibile degli shader.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Impossibile rimuovere la configurazione personalizzata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Non esiste una configurazione personalizzata per questo gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>La configurazione personalizzata del gioco è stata rimossa con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Impossibile rimuovere la configurazione personalizzata del gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Estrazione RomFS fallita!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>C&apos;è stato un errore nella copia dei file del RomFS o l&apos;operazione è stata annullata dall&apos;utente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Cartelle</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Seleziona la modalità di estrazione della RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Seleziona come vorresti estrarre la RomFS. &lt;br&gt;La modalità Completa copierà tutti i file in una nuova cartella mentre&lt;br&gt;la modalità Cartelle creerà solamente le cartelle e le sottocartelle.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Estrazione RomFS in corso...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Annulla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Estrazione RomFS riuscita!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>L&apos;operazione è stata completata con successo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Crea scorciatoia</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Verrà creata una scorciatoia all&apos;AppImage attuale. Potrebbe non funzionare correttamente se effettui un aggiornamento. Vuoi continuare?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Impossibile creare la scorciatoia sul desktop. Il percorso &quot;%1&quot; non esiste.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Impossibile creare la scorciatoia nel menù delle applicazioni. Il percorso &quot;%1&quot; non esiste e non può essere creato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Crea icona</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Impossibile creare il file dell&apos;icona. Il percorso &quot;%1&quot; non esiste e non può essere creato.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Avvia %1 con l&apos;emulatore yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Impossibile creare la scorciatoia in %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Scorciatoia creata con successo in %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Impossibile aprire %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Seleziona cartella</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Proprietà</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Non è stato possibile caricare le proprietà del gioco.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Eseguibile Switch (%1);;Tutti i file (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Carica file</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Apri cartella ROM estratta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Cartella selezionata non valida</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>La cartella che hai selezionato non contiene un file &quot;main&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>File installabili Switch (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Installa file</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n file rimanente</numerusform><numerusform>%n file rimanenti</numerusform><numerusform>%n file rimanenti</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installazione del file &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Risultati dell&apos;installazione</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Per evitare possibli conflitti, sconsigliamo di installare i giochi base su NAND.
Usa questa funzione solo per installare aggiornamenti e DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n nuovo file è stato installato
@@ -5168,7 +5283,7 @@ Usa questa funzione solo per installare aggiornamenti e DLC.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n file è stato sovrascritto
@@ -5177,7 +5292,7 @@ Usa questa funzione solo per installare aggiornamenti e DLC.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n file non è stato installato a causa di errori
@@ -5186,389 +5301,313 @@ Usa questa funzione solo per installare aggiornamenti e DLC.</translation>
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Applicazione di sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Archivio di sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Aggiornamento di un&apos;applicazione di sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Pacchetto firmware (tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Pacchetto firmware (tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Gioco</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Aggiornamento di gioco</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Titolo delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Seleziona il tipo di installazione NCA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Seleziona il tipo del file NCA da installare:
(Nella maggior parte dei casi, il valore predefinito &apos;Gioco&apos; va bene.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Installazione fallita</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Il tipo che hai selezionato per l&apos;NCA non è valido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>File non trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>File &quot;%1&quot; non trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Requisiti hardware non soddisfatti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Il tuo sistema non soddisfa i requisiti hardware consigliati. La funzionalità di segnalazione della compatibilità è stata disattivata.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Account di yuzu non trovato</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Per segnalare la compatibilità di un gioco, devi collegare il tuo account yuzu. &lt;br&gt;&lt;br/&gt;Per collegare il tuo account yuzu, vai su Emulazione &amp;gt;
Configurazione &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Impossibile aprire l&apos;URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Non è stato possibile aprire l&apos;URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Vuoi sovrascrivere il file del giocatore 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Trovata configurazione invalida</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Il controller portatile non può essere utilizzato in modalità dock. Verrà selezionato il controller Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>L&apos;Amiibo corrente è stato rimosso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Errore</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>File Amiibo (%1);; Tutti i file (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Carica Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Impossibile caricare i dati dell&apos;Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Il file selezionato non è un Amiibo valido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Il file selezionato è già in uso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Si è verificato un errore sconosciuto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Cattura screenshot</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Immagine PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Interrompi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Avvia</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Interrompi r&amp;egistrazione</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>R&amp;egistra</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Compilazione di %n shader</numerusform><numerusform>Compilazione di %n shader</numerusform><numerusform>Compilazione di %n shader</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Risoluzione: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Velocità: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Velocità: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Gioco: %1 FPS (Sbloccati)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Gioco: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMALE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU ALTA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU ESTREMA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>ERRORE GPU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>DOCK</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>PORTATILE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NEAREST</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEARE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBICO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIANO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>NO AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUME: MUTO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUME: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Conferma ri-derivazione chiavi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5585,37 +5624,37 @@ e facoltativamente fai dei backup.
Questo eliminerà i tuoi file di chiavi autogenerati e ri-avvierà il processo di derivazione delle chiavi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Fusi mancanti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0 mancante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Main mancante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO mancante</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Componenti di derivazione mancanti</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Chiavi di crittografia mancanti. &lt;br&gt;Segui &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;la guida introduttiva di yuzu&lt;/a&gt; per ottenere tutte le tue chiavi, il tuo firmware e i tuoi giochi.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5624,49 +5663,49 @@ Questa operazione potrebbe durare fino a un minuto in
base alle prestazioni del tuo sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Derivazione chiavi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Seleziona Target dell&apos;Estrazione del RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Seleziona quale RomFS vorresti estrarre.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Sei sicuro di voler chiudere yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Sei sicuro di voler arrestare l&apos;emulazione? Tutti i progressi non salvati verranno perduti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5674,48 +5713,143 @@ Would you like to bypass this and exit anyway?</source>
Desideri uscire comunque?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Nessuna</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>Nearest</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilineare</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubico</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussiano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Dock</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Portatile</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normale</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Alta</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Estrema</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL non disponibile!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Gli shared context di OpenGL non sono supportati.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu è stato compilato senza il supporto a OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Errore durante l&apos;inizializzazione di OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>La tua GPU potrebbe non supportare OpenGL, o non hai installato l&apos;ultima versione dei driver video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Errore durante l&apos;inizializzazione di OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>La tua GPU potrebbe non supportare OpenGL 4.6, o non hai installato l&apos;ultima versione dei driver video.&lt;br&gt;&lt;br&gt;Renderer GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>La tua GPU potrebbe non supportare una o più estensioni OpenGL richieste. Assicurati di aver installato i driver video più recenti.&lt;br&gt;&lt;br&gt;Renderer GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Estensioni non supportate:&lt;br&gt;%2</translation>
</message>
@@ -6069,138 +6203,138 @@ Messaggio di debug:</translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Attiva/disattiva l&apos;audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Finestra principale</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Abbassa il volume dell&apos;audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Alza il volume dell&apos;audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Cattura screenshot</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Cambia filtro di adattamento</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Cambia modalità console</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Cambia accuratezza GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Continua/Metti in pausa l&apos;emulazione</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Esci dalla modalità schermo intero</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Esci da yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Schermo intero</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Carica file</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Carica/Rimuovi Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Riavvia l&apos;emulazione</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Arresta l&apos;emulazione</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Registra TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Reimposta TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Avvia/interrompi TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Mostra/nascondi la barra del filtro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Attiva/disattiva il limite del framerate</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Attiva/disattiva il mouse panning</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Mostra/nascondi la barra di stato</translation>
</message>
@@ -6942,30 +7076,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[non impost.]</translation>
</message>
@@ -6976,14 +7110,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Asse %1%2</translation>
</message>
@@ -6994,320 +7128,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[sconosciuto]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Sinistra</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Destra</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Giù</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Su</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Cerchio</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Croce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Quadrato</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triangolo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Condividi</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opzioni</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[non valido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Asse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Asse %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
- <translation type="unfinished"/>
+ <translation>%1%2Movimento %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Pulsante %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[inutilizzato]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Levetta L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Levetta R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Più</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Meno</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Cattura</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Rotella</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Indietro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Avanti</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3Asse %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Pulsante %4</translation>
</message>
diff --git a/dist/languages/ja_JP.ts b/dist/languages/ja_JP.ts
index 282855584..74094f48b 100644
--- a/dist/languages/ja_JP.ts
+++ b/dist/languages/ja_JP.ts
@@ -381,17 +381,17 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="42"/>
<source>Output Device:</source>
- <translation type="unfinished"/>
+ <translation>出力デバイス:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="56"/>
<source>Input Device:</source>
- <translation type="unfinished"/>
+ <translation>入力デバイス:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="70"/>
<source>Sound Output Mode:</source>
- <translation type="unfinished"/>
+ <translation>音声出力モード:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="78"/>
@@ -1137,78 +1137,78 @@ This would ban both their forum username and their IP address.</source>
<translation>yuzuの設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>サウンド</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>デバッグ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>ファイルシステム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>全般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>グラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>拡張グラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>ホットキー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>操作</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>プロファイル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>ネットワーク</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>システム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>ゲームリスト</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1402,17 +1402,22 @@ This would ban both their forum username and their IP address.</source>
<translation>非アクティブ時にマウスカーソルを隠す</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>すべての設定をリセット</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>すべての設定がリセットされ、ゲームごとの設定もすべて削除されます。ゲームディレクトリ、プロファイル、入力プロファイルは削除されません。続行しますか?</translation>
</message>
@@ -1700,45 +1705,45 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>背景色:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (アセンブリシェーダ、NVIDIA のみ)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (実験的, Mesa のみ)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
- <translation type="unfinished"/>
+ <translation>オフ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
- <translation type="unfinished"/>
+ <translation>VSync オフ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
- <translation type="unfinished"/>
+ <translation>推奨</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
- <translation type="unfinished"/>
+ <translation>オン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
- <translation type="unfinished"/>
+ <translation>VSync オン</translation>
</message>
</context>
<context>
@@ -1766,22 +1771,22 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="90"/>
<source>ASTC recompression:</source>
- <translation type="unfinished"/>
+ <translation>ASTC 再圧縮:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
<source>Uncompressed (Best quality)</source>
- <translation type="unfinished"/>
+ <translation>圧縮しない (最高品質)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation type="unfinished"/>
+ <translation>BC1 (低品質)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation type="unfinished"/>
+ <translation>BC3 (中品質)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
@@ -1860,37 +1865,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>異方性フィルタリング:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>自動</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>デフォルト</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2273,7 +2298,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>設定</translation>
</message>
@@ -2337,25 +2362,10 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2742"/>
<source>Use random Amiibo ID</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation type="unfinished"/>
+ <translation>ランダムな Amiibo ID を使用</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>マウス感度</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>モーション / タッチ</translation>
</message>
@@ -2420,7 +2430,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.cpp" line="35"/>
<source>Use global input configuration</source>
- <translation type="unfinished"/>
+ <translation>グローバル入力設定を使用</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.cpp" line="47"/>
@@ -2467,7 +2477,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Lスティック</translation>
</message>
@@ -2561,14 +2571,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2587,7 +2597,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -2600,15 +2610,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2665,247 +2675,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Rスティック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>クリア</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>ボタンを反転</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
- <translation type="unfinished"/>
+ <translation>ターボボタン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>軸を反転</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>しきい値を設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>0%から100%の間の値を選択してください</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>ジャイロのしきい値を設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>センサーを補正</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>アナログスティックをマップ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>OKを押した後、スティックを水平方向に動かし、次に垂直方向に動かしてください。
軸を反転させる場合、 最初に垂直方向に動かし、次に水平方向に動かしてください。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>デッドゾーン:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>変更範囲:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Proコントローラ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joy-Con(L/R)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joy-Con(L)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joy-Con(R)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>携帯モード</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>ゲームキューブコントローラ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>モンスターボールプラス</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>ファミコン・コントローラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>スーパーファミコン・コントローラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>ニンテンドウ64・コントローラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>メガドライブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>スタート/ ポーズ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>Cスティック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>振ってください</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[待機中]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>新規プロファイル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>プロファイル名を入力:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>入力プロファイルを作成</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>プロファイル名が無効です!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; の作成に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>入力プロファイルを削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; の削除に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>入力プロファイルをロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; のロードに失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>入力プロファイルをセーブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>入力プロファイル &quot;%1&quot; のセーブに失敗しました</translation>
</message>
@@ -3085,6 +3105,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>有効</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>デフォルト</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3160,47 +3255,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>開発元</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>アドオン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>全般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>システム</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>グラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>高度なグラフィック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>サウンド</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>入力プロファイル</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>プロパティ</translation>
</message>
@@ -3403,8 +3498,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>このコントローラを使用する場合は、ゲームを開始する前に、プレイヤー1を右コントローラ、プレイヤー2をデュアルジョイコンに設定し、このコントローラを正しく認識させるようにしてください。</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3436,18 +3531,18 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="293"/>
<source>Enable Ring Input</source>
- <translation type="unfinished"/>
+ <translation>リングコン入力を有効化</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>有効</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="307"/>
<source>Ring Sensor Value</source>
- <translation type="unfinished"/>
+ <translation>リングコン センサー値</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="314"/>
@@ -3484,7 +3579,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="279"/>
<source>Error enabling ring input</source>
- <translation type="unfinished"/>
+ <translation>リングコン入力の有効化エラー</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="285"/>
@@ -3507,12 +3602,17 @@ UUID: %2</translation>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[入力待ち]</translation>
</message>
@@ -4622,962 +4722,901 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>yuzuの改善に役立てるため、&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;匿名データが収集されます&lt;/a&gt;。&lt;br/&gt;&lt;br/&gt;統計情報を共有しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>テレメトリ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>壊れたVulkanのインストールが検出されました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>起動時にVulkanの初期化に失敗しました。&lt;br&gt;&lt;br&gt;この問題を解決するための手順は&lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;こちら&lt;/a&gt;。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Webアプレットをロード中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Webアプレットの無効化</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Webアプレットを無効にすると、未定義の動作になる可能性があるため、スーパーマリオ3Dオールスターズでのみ使用するようにしてください。本当にWebアプレットを無効化しますか?
(デバッグ設定で再度有効にすることができます)。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>ビルド中のシェーダー数</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>現在選択されている解像度の倍率。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>現在のエミュレーション速度。値が100%より高いか低い場合、エミュレーション速度がSwitchより速いか遅いことを示します。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>ゲームが現在表示している1秒あたりのフレーム数。これはゲームごと、シーンごとに異なります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Switchフレームをエミュレートするのにかかる時間で、フレームリミットやV-Syncは含まれません。フルスピードエミュレーションの場合、最大で16.67ミリ秒になります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>最近のファイルをクリア(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>再開(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>中断(&amp;P)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzuはゲームを起動しています</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>古いゲームフォーマットの警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>このゲームでは、分解されたROMディレクトリフォーマットを使用しています。これは、NCA、NAX、XCI、またはNSPなどに取って代わられた古いフォーマットです。分解されたROMディレクトリには、アイコン、メタデータ、およびアップデートサポートがありません。&lt;br&gt;&lt;br&gt;yuzuがサポートするSwitchフォーマットの説明については、&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;wikiをチェックしてください&lt;/a&gt;。このメッセージは二度と表示されません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>ROMロード中にエラーが発生しました!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>このROMフォーマットはサポートされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>ビデオコア初期化中にエラーが発生しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzuは、ビデオコアの実行中にエラーが発生しました。これは通常、内蔵GPUも含め、古いGPUドライバが原因です。詳しくはログをご覧ください。ログへのアクセス方法については、以下のページをご覧ください:&lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;ログファイルのアップロード方法について&lt;/a&gt;。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROMのロード中にエラー! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzuクイックスタートガイド&lt;/a&gt;を参照してファイルを再ダンプしてください。&lt;br&gt;またはyuzu wiki及び&lt;/a&gt;yuzu Discord&lt;/a&gt;を参照するとよいでしょう。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>不明なエラーが発生しました。詳細はログを確認して下さい。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
- <translation type="unfinished"/>
+ <translation>ソフトウェアを終了中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>データのセーブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Modデータ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>”%1”フォルダを開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>フォルダが存在しません!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>シェーダキャッシュを開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>このタイトル用のシェーダキャッシュディレクトリの作成に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>コンテンツの削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>アップデートの削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>DLC の削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>インストールされたゲームのコンテンツを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>インストールされたゲームのアップデートを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>インストールされたゲームの DLC を削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>エントリ削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>削除しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>インストールされたゲームを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>ゲームはNANDにインストールされていないため、削除できません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>インストールされたアップデートを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>このタイトルのアップデートはインストールされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>このタイトルにはDLCがインストールされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1にインストールされたDLCを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>転送可能なOpenGLシェーダキャッシュを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>転送可能なVulkanシェーダキャッシュを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>転送可能なすべてのシェーダキャッシュを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>このタイトルのカスタム設定を削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>キャッシュストレージを削除しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>ファイル削除</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>転送可能なシェーダーキャッシュの削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>このタイトル用のシェーダキャッシュは存在しません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>転送可能なシェーダーキャッシュが正常に削除されました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>転送可能なシェーダーキャッシュを削除できませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>転送可能なシェーダキャッシュの削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>転送可能なシェーダキャッシュを正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>転送可能なシェーダキャッシュディレクトリの削除に失敗しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>カスタム設定の削除エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>このタイトルのカスタム設定は存在しません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>カスタム設定を正常に削除しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>カスタム設定の削除に失敗しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFSの抽出に失敗しました!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFSファイルをコピー中にエラーが発生したか、ユーザー操作によりキャンセルされました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>フル</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>スケルトン</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFSダンプモードの選択</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>RomFSのダンプ方法を選択してください。&lt;br&gt;”完全”はすべてのファイルが新しいディレクトリにコピーされます。&lt;br&gt;”スケルトン”はディレクトリ構造を作成するだけです。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 に RomFS を展開するための十分な空き領域がありません。Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root で、空き容量を確保するか、別のダンプディレクトリを選択してください。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>RomFSを抽出中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS抽出成功!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>操作は成功しました。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>ショートカットを作成</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>アイコンを作成</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>”%1”を開けませんでした</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>ディレクトリの選択</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>プロパティ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>ゲームプロパティをロード出来ませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch実行ファイル (%1);;すべてのファイル (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>ファイルのロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>展開されているROMディレクトリを開く</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>無効なディレクトリが選択されました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>選択されたディレクトリに”main”ファイルが見つかりませんでした。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>インストール可能なスイッチファイル (*.nca *.nsp *.xci);;任天堂コンテンツアーカイブ (*.nca);;任天堂サブミッションパッケージ (*.nsp);;NXカートリッジイメージ (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>ファイルのインストール</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>残り %n ファイル</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>&quot;%1&quot;ファイルをインストールしています・・・</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>インストール結果</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>競合を避けるため、NANDにゲーム本体をインストールすることはお勧めしません。
この機能は、アップデートやDLCのインストールにのみ使用してください。</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n ファイルが新たにインストールされました
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n ファイルが上書きされました
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n ファイルのインストールに失敗しました
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>システムアプリケーション</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>システムアーカイブ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>システムアプリケーションアップデート</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>ファームウェアパッケージ(Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>ファームウェアパッケージ(Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>ゲーム</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>ゲームアップデート</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>ゲームDLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>差分タイトル</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>NCAインストール種別を選択・・・</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>インストールするNCAタイトル種別を選択して下さい:
(ほとんどの場合、デフォルトの”ゲーム”で問題ありません。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>インストール失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>選択されたNCAのタイトル種別が無効です。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>ファイルが存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>ファイル”%1”が存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>yuzuアカウントが存在しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>ゲームの互換性テストケースを送信するには、yuzuアカウントをリンクする必要があります。&lt;br&gt;&lt;br/&gt;yuzuアカウントをリンクするには、エミュレーション > 設定 > Web から行います。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>URLオープンエラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL&quot;%1&quot;を開けません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation> TAS 記録中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>プレイヤー1のファイルを上書きしますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>無効な設定を検出しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>携帯コントローラはドックモードで使用できないため、Proコントローラが選択されます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>現在の amiibo は削除されました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>現在のゲームはamiiboを要求しません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>amiiboファイル (%1);;すべてのファイル (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>amiiboのロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>amiiboデータ読み込み中にエラーが発生しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
- <translation type="unfinished"/>
+ <translation>不明なエラーが発生しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>スクリーンショットのキャプチャ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG画像 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 状態: 実行中 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS 状態: 記録中 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 状態: アイドル %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS 状態: 無効</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>実行停止(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>実行(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>記録停止(&amp;R)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>記録(&amp;R)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>構築中: %n 個のシェーダー</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>拡大率: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>速度:%1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>速度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Game: %1 FPS(制限解除)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>ゲーム:%1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>フレーム:%1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU HIGH</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREME</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU ERROR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>DOCKED</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>HANDHELD</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NEAREST</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBIC</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>NO AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>音量: ミュート</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>音量: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>キーの再取得確認</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5594,37 +5633,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
実行すると、自動生成された鍵ファイルが削除され、鍵生成モジュールが再実行されます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>ヒューズがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0がありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Mainがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFOがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>派生コンポーネントがありません</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>暗号化キーがありません。&lt;br&gt;キー、ファームウェア、ゲームを取得するには&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu クイックスタートガイド&lt;/a&gt;を参照ください。&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5633,49 +5672,49 @@ on your system&apos;s performance.</source>
1分以上かかります。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>派生キー</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
- <translation type="unfinished"/>
+ <translation>システムアーカイブの復号に失敗しました</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>RomFSダンプターゲットの選択</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>ダンプしたいRomFSを選択して下さい。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>yuzuを終了しますか?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>エミュレーションを停止しますか?セーブされていない進行状況は失われます。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5683,48 +5722,143 @@ Would you like to bypass this and exit anyway?</source>
無視してとにかく終了しますか?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>なし</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubic</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussian</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Docked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>携帯モード</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>標準</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>高い</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGLは使用できません!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzuはOpenGLサポート付きでコンパイルされていません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL初期化エラー</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPUがOpenGLをサポートしていないか、グラフィックスドライバーが最新ではありません。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL4.6初期化エラー!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPUがOpenGL4.6をサポートしていないか、グラフィックスドライバーが最新ではありません。&lt;br&gt;&lt;br&gt;GL レンダラ:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPUが1つ以上の必要なOpenGL拡張機能をサポートしていない可能性があります。最新のグラフィックドライバを使用していることを確認してください。&lt;br&gt;&lt;br&gt;GL レンダラ:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;サポートされていない拡張機能:&lt;br&gt;%2</translation>
</message>
@@ -5784,7 +5918,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>キャッシュストレージを削除</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6078,138 +6212,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>音声ミュート/解除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>メイン画面</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>音量を下げる</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>音量を上げる</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>スクリーンショットを撮る</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>アダプティングフィルターの変更</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>ドックモードを変更</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>GPU精度を変更</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>エミュレーションの一時停止/再開</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>フルスクリーンをやめる</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>yuzuを終了</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>フルスクリーン</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>ファイルのロード</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>読み込み/解除 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>エミュレーションをリスタート</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>エミュレーションをやめる</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>TAS 記録</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>TAS リセット</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS 開始/停止</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>フィルタバー切り替え</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>フレームレート制限切り替え</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>ステータスバー切り替え</translation>
</message>
@@ -6951,30 +7085,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
@@ -6985,14 +7119,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>スティック %1%2</translation>
</message>
@@ -7003,320 +7137,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[不明]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>左</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>右</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>下</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>開始</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>マル</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>バツ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>四角</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>三角</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[未定義]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[無効]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2ボタン %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[未使用]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>L スティック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>R スティック</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>+</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>-</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>HOME</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>キャプチャ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>タッチの設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>ホイール</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>後ろ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>前</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
- <translation type="unfinished"/>
+ <translation>タスク</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
@@ -7361,7 +7495,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="270"/>
<source>Owner</source>
- <translation type="unfinished"/>
+ <translation>オーナー</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="290"/>
@@ -7750,12 +7884,12 @@ Please try again or contact the developer of the software.</source>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="173"/>
<source>Profile Icon Editor</source>
- <translation type="unfinished"/>
+ <translation>プロファイル アイコンエディタ</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="176"/>
<source>Profile Nickname Editor</source>
- <translation type="unfinished"/>
+ <translation>プロファイル ニックネームエディタ</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="198"/>
diff --git a/dist/languages/ko_KR.ts b/dist/languages/ko_KR.ts
index 573d5e77b..8ebdf1d04 100644
--- a/dist/languages/ko_KR.ts
+++ b/dist/languages/ko_KR.ts
@@ -1138,78 +1138,78 @@ This would ban both their forum username and their IP address.</source>
<translation>yuzu 설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>오디오</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>디버그</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>파일 시스템</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>일반</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>그래픽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>그래픽 고급</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>단축키</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>조작</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>프로필</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>네트워크</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>시스템</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>게임 목록</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>웹</translation>
</message>
@@ -1403,17 +1403,22 @@ This would ban both their forum username and their IP address.</source>
<translation>비활성 상태일 때 마우스 숨기기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>모든 설정 초기화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>모든 환경 설정과 게임별 맞춤 설정이 초기화됩니다. 게임 디렉토리나 프로필, 또는 입력 프로필은 삭제되지 않습니다. 진행하시겠습니까?</translation>
</message>
@@ -1487,7 +1492,10 @@ This would ban both their forum username and their IP address.</source>
FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down.
Mailbox can have lower latency than FIFO and does not tear but may drop frames.
Immediate (no synchronization) just presents whatever is available and can exhibit tearing.</source>
- <translation type="unfinished"/>
+ <translation>FIFO (수직동기화)는 프레임이 떨어지거나 티어링 현상이 나타나지 않지만 화면 재생률에 의해 제한됩니다.
+FIFO 릴랙스드는 FIFO와 유사하지만 속도가 느려진 후 복구할 때 끊김 현상이 발생할 수 있습니다.
+메일박스는 FIFO보다 지연 시간이 짧고 티어링이 발생하지 않지만 프레임이 떨어질 수 있습니다.
+즉시 (동기화 없음)는 사용 가능한 모든 것을 표시하며 티어링이 나타날 수 있습니다.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="247"/>
@@ -1701,45 +1709,45 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>배경색:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM(어셈블리 셰이더, NVIDIA 전용)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (실험적, Mesa 전용)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
- <translation type="unfinished"/>
+ <translation>끔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
- <translation type="unfinished"/>
+ <translation>수직동기화 끔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
- <translation type="unfinished"/>
+ <translation>추천</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
- <translation type="unfinished"/>
+ <translation>켬</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
- <translation type="unfinished"/>
+ <translation>수직동기화 켬</translation>
</message>
</context>
<context>
@@ -1862,37 +1870,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>컴퓨팅 파이프라인 활성화(Intel Vulkan만 해당)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>프레임 속도가 잠금 해제된 상태에서도 동영상 재생 중에 일반 속도로 게임을 실행합니다.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>동영상 재생 프레임 속도에 동기화</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>특정 게임에서 투명도 효과의 렌더링을 개선합니다.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation>차단 피드백 루프</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>비등방성 필터링:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>자동</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>기본값</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2275,7 +2303,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>설정</translation>
</message>
@@ -2334,30 +2362,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2733"/>
<source>Allows unlimited uses of the same Amiibo in games that would otherwise limit you to one use.</source>
- <translation type="unfinished"/>
+ <translation>한 번으로 사용이 제한되는 게임에서 동일한 아미보를 무제한으로 사용할 수 있습니다.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2742"/>
<source>Use random Amiibo ID</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>마우스 패닝 활성화</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>마우스 감도</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
+ <translation>무작위 아미보 ID 사용</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>모션 컨트롤/ 터치</translation>
</message>
@@ -2469,7 +2482,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>L 스틱</translation>
</message>
@@ -2563,14 +2576,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2589,7 +2602,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -2602,15 +2615,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2667,247 +2680,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>R 스틱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>설정</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>초기화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[설정 안 됨]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>버튼 반전</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>토글 버튼</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
- <translation type="unfinished"/>
+ <translation>터보 버튼</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>축 뒤집기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>임계값 설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>0%에서 100% 안의 값을 고르세요</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>axis 토글</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>자이로 임계값 설정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
- <translation type="unfinished"/>
+ <translation>센서 보정</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>아날로그 스틱 맵핑</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>OK 버튼을 누른 후에 먼저 조이스틱을 수평으로 움직이고, 그 다음 수직으로 움직이세요.
축을 뒤집으려면 수직으로 먼저 움직인 뒤에 수평으로 움직이세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>중심축</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>데드존: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>수정자 범위: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>프로 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>듀얼 조이콘</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>왼쪽 조이콘</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>오른쪽 조이콘</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>휴대 모드</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>몬스터볼 Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64 컨트롤러</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>세가 제네시스</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>시작 / 일시중지</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>컨트롤 스틱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>흔드세요!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[대기중]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>새 프로필</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>프로필 이름을 입력하세요:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>입력 프로필 생성</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>해당 프로필 이름은 사용할 수 없습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 생성 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>입력 프로필 삭제</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 삭제 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>입력 프로필 불러오기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 불러오기 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>입력 프로필 저장</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; 입력 프로필 저장 실패</translation>
</message>
@@ -3087,6 +3110,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>활성화</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>기본값</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3162,47 +3260,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>개발자</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>부가 기능</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>일반</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>시스템</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>그래픽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>고급 그래픽</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>오디오</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>입력 프로파일</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>속성</translation>
</message>
@@ -3405,13 +3503,13 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>이 컨트롤러를 사용하려면 이 컨트롤러가 제대로 감지될 수 있도록 게임을 시작하기 전에 플레이어 1을 오른쪽 컨트롤러로, 플레이어 2를 듀얼 조이콘으로 구성하십시오.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
<source>Virtual Ring Sensor Parameters</source>
- <translation type="unfinished"/>
+ <translation>가상 링 센서 파라미터</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="84"/>
@@ -3433,29 +3531,29 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="233"/>
<source>Direct Joycon Driver</source>
- <translation type="unfinished"/>
+ <translation>다이렉트 조이콘 드라이버</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="293"/>
<source>Enable Ring Input</source>
- <translation type="unfinished"/>
+ <translation>링 입력 활성화</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
- <translation type="unfinished"/>
+ <translation>활성화</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="307"/>
<source>Ring Sensor Value</source>
- <translation type="unfinished"/>
+ <translation>링 센서 값</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="314"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="282"/>
<source>Not connected</source>
- <translation type="unfinished"/>
+ <translation>연결되지 않음</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="344"/>
@@ -3486,12 +3584,12 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="279"/>
<source>Error enabling ring input</source>
- <translation type="unfinished"/>
+ <translation>링 입력 활성화 오류</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="285"/>
<source>Direct Joycon driver is not enabled</source>
- <translation type="unfinished"/>
+ <translation>다이렉트 조이콘 드라이버가 활성화되지 않았음</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="290"/>
@@ -3501,20 +3599,25 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="302"/>
<source>The current mapped device doesn&apos;t support the ring controller</source>
- <translation type="unfinished"/>
+ <translation>현재 매핑된 장치가 링 컨트롤러를 지원하지 않음</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="306"/>
<source>The current mapped device doesn&apos;t have a ring attached</source>
+ <translation>현재 매핑된 장치에 링이 연결되어 있지 않음</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
- <translation type="unfinished"/>
+ <translation>예기치 않은 드라이버 결과 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[대기중]</translation>
</message>
@@ -3925,7 +4028,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="484"/>
<source>Unsafe extended memory layout (8GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>안전하지 않은 확장 메모리 레이아웃 (8GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="519"/>
@@ -4575,12 +4678,12 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="47"/>
<source>Server Address</source>
- <translation type="unfinished"/>
+ <translation>서버 주소</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="54"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Server address of the host&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"/>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;호스트의 서버 주소&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="64"/>
@@ -4624,962 +4727,901 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>yuzu를 개선하기 위해 &lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;익명 데이터가 수집됩니다.&lt;/a&gt; &lt;br/&gt;&lt;br/&gt;사용 데이터를 공유하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>원격 측정</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>망가진 Vulkan 설치 감지됨</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>부팅하는 동안 Vulkan 초기화에 실패했습니다.&lt;br&gt;&lt;br&gt;문제 해결 지침을 보려면 &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;여기&lt;/a&gt;를 클릭하세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>웹 애플릿을 로드하는 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>웹 애플릿 비활성화</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>웹 애플릿을 비활성화하면 정의되지 않은 동작이 발생할 수 있으며 Super Mario 3D All-Stars에서만 사용해야 합니다. 웹 애플릿을 비활성화하시겠습니까?
(디버그 설정에서 다시 활성화할 수 있습니다.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>현재 생성중인 셰이더의 양</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>현재 선택된 해상도 배율입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>현재 에뮬레이션 속도. 100%보다 높거나 낮은 값은 에뮬레이션이 Switch보다 빠르거나 느린 것을 나타냅니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>게임이 현재 표시하고 있는 초당 프레임 수입니다. 이것은 게임마다 다르고 장면마다 다릅니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>프레임 제한이나 수직 동기화를 계산하지 않고 Switch 프레임을 에뮬레이션 하는 데 걸린 시간. 최대 속도로 에뮬레이트 중일 때에는 대부분 16.67 ms 근처입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>음소거 해제</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>음소거</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>볼륨 재설정</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>Clear Recent Files(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
- <translation type="unfinished"/>
+ <translation>에뮬레이트 마우스 사용</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
- <translation type="unfinished"/>
+ <translation>실제 마우스 입력과 마우스 패닝은 호환되지 않습니다. 마우스 패닝을 허용하려면 입력 고급 설정에서 에뮬레이트 마우스를 비활성화하세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>재개(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>일시중지(&amp;P)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu가 게임을 실행중입니다</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>오래된 게임 포맷 경고</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>이 게임 파일은 &apos;분해된 ROM 디렉토리&apos;라는 오래된 포맷을 사용하고 있습니다. 해당 포맷은 NCA, NAX, XCI 또는 NSP와 같은 다른 포맷으로 대체되었으며 분해된 ROM 디렉토리에는 아이콘, 메타 데이터 및 업데이트가 지원되지 않습니다.&lt;br&gt;&lt;br&gt;yuzu가 지원하는 다양한 Switch 포맷에 대한 설명은 &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;위키를 확인하세요.&lt;/a&gt; 이 메시지는 다시 표시되지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>ROM 로드 중 오류 발생!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>지원되지 않는 롬 포맷입니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>비디오 코어를 초기화하는 동안 오류가 발생했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>비디오 코어를 실행하는 동안 yuzu에 오류가 발생했습니다. 이것은 일반적으로 통합 드라이버를 포함하여 오래된 GPU 드라이버로 인해 발생합니다. 자세한 내용은 로그를 참조하십시오. 로그 액세스에 대한 자세한 내용은 &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;로그 파일 업로드 방법&lt;/a&gt; 페이지를 참조하세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROM 불러오는 중 오류 발생! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;파일들을 다시 덤프하기 위해&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 빠른 시작 가이드&lt;/a&gt; 를 따라주세요.&lt;br&gt;도움이 필요할 시 yuzu 위키&lt;/a&gt; 를 참고하거나 yuzu 디스코드&lt;/a&gt; 를 이용해보세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>알 수 없는 오류가 발생했습니다. 자세한 내용은 로그를 참고하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64비트)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32비트)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>소프트웨어를 닫는 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>세이브 데이터</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>모드 데이터</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>%1 폴더 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>폴더가 존재하지 않습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>전송 가능한 셰이더 캐시 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>이 타이틀에 대한 셰이더 캐시 디렉토리를 생성하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>콘텐츠 제거 중 오류 발생</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>업데이트 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>DLC 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>설치된 게임 콘텐츠를 제거하겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>설치된 게임 업데이트를 제거하겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>설치된 게임 DLC를 제거하겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>항목 제거</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>삭제 완료</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>설치된 기본 게임을 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>기본 게임은 NAND에 설치되어 있지 않으며 제거 할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>설치된 업데이트를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>이 타이틀에 대해 설치된 업데이트가 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>이 타이틀에 설치된 DLC가 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>설치된 %1 DLC를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>OpenGL 전송 가능한 셰이더 캐시를 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Vulkan 전송 가능한 셰이더 캐시를 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>모든 전송 가능한 셰이더 캐시를 삭제하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>사용자 지정 게임 구성을 제거 하시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>캐시 저장소를 제거하겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>파일 제거</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>전송 가능한 셰이더 캐시 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>이 타이틀에 대한 셰이더 캐시가 존재하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>전송 가능한 셰이더 캐시를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>전송 가능한 셰이더 캐시를 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Vulkan 드라이버 파이프라인 캐시 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>드라이버 파이프라인 캐시를 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>전송 가능한 셰이더 캐시 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>전송 가능한 셰이더 캐시를 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>전송 가능한 셰이더 캐시 디렉토리를 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>사용자 지정 구성 제거 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>이 타이틀에 대한 사용자 지정 구성이 존재하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>사용자 지정 게임 구성을 성공적으로 제거했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>사용자 지정 게임 구성을 제거하지 못했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS 추출 실패!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFS 파일을 복사하는 중에 오류가 발생했거나 사용자가 작업을 취소했습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>전체</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>뼈대</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFS 덤프 모드 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>RomFS 덤프 방법을 선택하십시오.&lt;br&gt;전체는 모든 파일을 새 디렉토리에 복사하고&lt;br&gt;뼈대는 디렉토리 구조 만 생성합니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1에 RomFS를 추출하기에 충분한 여유 공간이 없습니다. 공간을 확보하거나 에뮬레이견 &gt; 설정 &gt; 시스템 &gt; 파일시스템 &gt; 덤프 경로에서 다른 덤프 디렉토리를 선택하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>RomFS 추출 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>취소</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS 추출이 성공했습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>작업이 성공적으로 완료되었습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>바로가기 만들기</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>현재 AppImage에 대한 바로 가기가 생성됩니다. 업데이트하면 제대로 작동하지 않을 수 있습니다. 계속합니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>바탕 화면에 바로가기를 만들 수 없습니다. 경로 &quot;%1&quot;이(가) 존재하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>애플리케이션 메뉴에서 바로가기를 만들 수 없습니다. 경로 &quot;%1&quot;이(가) 존재하지 않으며 생성할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>아이콘 만들기</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>아이콘 파일을 만들 수 없습니다. 경로 &quot;%1&quot;이(가) 존재하지 않으며 생성할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>yuzu 에뮬레이터로 %1 시작</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>%1에서 바로가기를 만들기 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>%1 바로가기를 성공적으로 만듬</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>%1 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>경로 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>속성</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>게임 속성을 로드 할 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch 실행파일 (%1);;모든 파일 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>파일 로드</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>추출된 ROM 디렉토리 열기</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>잘못된 디렉토리 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>선택한 디렉토리에 &apos;main&apos;파일이 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>설치 가능한 Switch 파일 (*.nca *.nsp *.xci);;Nintendo 컨텐츠 아카이브 (*.nca);;Nintendo 서브미션 패키지 (*.nsp);;NX 카트리지 이미지 (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>파일 설치</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n개의 파일이 남음</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>파일 &quot;%1&quot; 설치 중...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>설치 결과</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>충돌을 피하기 위해, 낸드에 베이스 게임을 설치하는 것을 권장하지 않습니다.
이 기능은 업데이트나 DLC를 설치할 때에만 사용해주세요.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n개의 파일이 새로 설치되었습니다.
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n개의 파일을 덮어썼습니다.
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n개의 파일을 설치하지 못했습니다.
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>시스템 애플리케이션</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>시스템 아카이브</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>시스템 애플리케이션 업데이트</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>펌웨어 패키지 (A타입)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>펌웨어 패키지 (B타입)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>게임</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>게임 업데이트</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>게임 DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>델타 타이틀</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>NCA 설치 유형 선택...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>이 NCA를 설치할 타이틀 유형을 선택하세요:
(대부분의 경우 기본값인 &apos;게임&apos;이 괜찮습니다.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>설치 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>NCA 타이틀 유형이 유효하지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>파일을 찾을 수 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>파일 &quot;%1&quot;을 찾을 수 없습니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>하드웨어 요구 사항이 충족되지 않음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>시스템이 권장 하드웨어 요구 사항을 충족하지 않습니다. 호환성 보고가 비활성화되었습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>yuzu 계정 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>게임 호환성 테스트 결과를 제출하려면 yuzu 계정을 연결해야합니다.&lt;br&gt;&lt;br/&gt;yuzu 계정을 연결하려면 에뮬레이션 &amp;gt; 설정 &amp;gt; 웹으로 가세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>URL 열기 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL &quot;%1&quot;을 열 수 없습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS 레코딩</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>플레이어 1의 파일을 덮어쓰시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>유효하지 않은 설정 감지</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>휴대 모드용 컨트롤러는 거치 모드에서 사용할 수 없습니다. 프로 컨트롤러로 대신 선택됩니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>현재 amiibo가 제거되었습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>현재 게임은 amiibo를 찾고 있지 않습니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo 파일 (%1);; 모든 파일 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Amiibo 로드</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Amiibo 데이터 로드 오류</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>선택한 파일은 유효한 amiibo가 아닙니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>선택한 파일은 이미 사용 중입니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>알수없는 오류가 발생했습니다</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>스크린샷 캡처</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG 이미지 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 상태: %1/%2 실행 중</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS 상태: 레코딩 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 상태: 유휴 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS 상태: 유효하지 않음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>실행 중지(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>시작(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>레코딩 중지(&amp;e)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>레코드(&amp;R)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>빌드중: %n개 셰이더</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>스케일: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>속도: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>속도: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>게임: %1 FPS (제한없음)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>게임: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>프레임: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU 보통</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU 높음</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU 굉장함</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU 오류</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>거치 모드</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>휴대 모드</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NEAREST</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBIC</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>AA 없음</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>볼륨: 음소거</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>볼륨: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>키 재생성 확인</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5596,37 +5638,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
자동 생성되었던 키 파일들이 삭제되고 키 생성 모듈이 다시 실행됩니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>fuses 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Main 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFO 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>파생 구성 요소 누락</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>암호화 키가 없습니다. &lt;br&gt;모든 키, 펌웨어 및 게임을 얻으려면 &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 빠른 시작 가이드&lt;/a&gt;를 따르세요.&lt;br&gt;&lt;br&gt; &lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5635,49 +5677,49 @@ on your system&apos;s performance.</source>
소요될 수 있습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>파생 키</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>시스템 아카이브 암호 해독 실패</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
- <translation type="unfinished"/>
+ <translation>암호화 키가 펌웨어를 해독하지 못했습니다. &lt;br&gt; 모든 키, 펌웨어 및 게임을 받으려면&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt; Yuzu 빠른 시작 가이드 &lt;/a&gt;를 따르세요.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>RomFS 덤프 대상 선택</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>덤프할 RomFS를 선택하십시오.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>yuzu를 닫으시겠습니까?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>에뮬레이션을 중지하시겠습니까? 모든 저장되지 않은 진행 상황은 사라집니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5685,48 +5727,143 @@ Would you like to bypass this and exit anyway?</source>
이를 무시하고 나가시겠습니까?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>없음</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>가장 가까운</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>이중선형</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>고등차수보간</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>가우시안</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>스케일포스</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>거치 모드</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>휴대 모드</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>보통</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>높음</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>익스트림</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>불칸</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Null</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL을 사용할 수 없습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL 공유 컨텍스트는 지원되지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu는 OpenGL 지원으로 컴파일되지 않았습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGL을 초기화하는 동안 오류가 발생했습니다!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>사용하시는 GPU가 OpenGL을 지원하지 않거나, 최신 그래픽 드라이버가 설치되어 있지 않습니다.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGL 4.6 초기화 중 오류 발생!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>사용하시는 GPU가 OpenGL 4.6을 지원하지 않거나 최신 그래픽 드라이버가 설치되어 있지 않습니다. &lt;br&gt;&lt;br&gt;GL 렌더링 장치:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>사용하시는 GPU가 1개 이상의 OpenGL 확장 기능을 지원하지 않습니다. 최신 그래픽 드라이버가 설치되어 있는지 확인하세요. &lt;br&gt;&lt;br&gt;GL 렌더링 장치:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;지원하지 않는 확장 기능:&lt;br&gt;%2</translation>
</message>
@@ -5786,7 +5923,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>캐시 스토리지 제거</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6080,138 +6217,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>오디오 음소거/음소거 해제</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>메인 윈도우</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>오디오 볼륨 낮추기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>오디오 볼륨 키우기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>스크린샷 캡처</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>적응형 필터 변경</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>독 모드 변경</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>GPU 정확성 변경</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>재개/에뮬레이션 일시중지</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>전체화면 종료</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>yuzu 종료</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>전체화면</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>파일 로드</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Amiibo 로드/제거</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>에뮬레이션 재시작</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>에뮬레이션 중단</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>TAS 기록</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>TAS 리셋</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS 시작/멈춤</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>상태 표시줄 전환</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>프레임속도 제한 토글</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>마우스 패닝 활성화</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>상태 표시줄 전환</translation>
</message>
@@ -6954,30 +7091,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[설정 안 됨]</translation>
</message>
@@ -6988,14 +7125,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>축 %1%2</translation>
</message>
@@ -7006,320 +7143,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[알 수 없음]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>왼쪽</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>오른쪽</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>아래</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>위</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>동그라미</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>엑스</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>네모</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>세모</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[설정안됨]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[유효하지않음]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2방향키 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axis %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axis %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2모션 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2버튼 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[미사용]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>L 스틱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>R 스틱</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>홈</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>캡쳐</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>터치</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>휠</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>뒤로가기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>앞으로가기</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Task</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3방향키%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3Axis %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3버튼%4</translation>
</message>
diff --git a/dist/languages/nb.ts b/dist/languages/nb.ts
index f6f79ca02..6e86588f6 100644
--- a/dist/languages/nb.ts
+++ b/dist/languages/nb.ts
@@ -1137,78 +1137,78 @@ Dette vil bannlyse både deres forum brukernavn og deres IP adresse.</translatio
<translation>yuzu Konfigurasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Feilsøk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Filsystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>AvnsertGrafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Hurtigtaster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Kontrollere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Nettverk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Spill Liste</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Nett</translation>
</message>
@@ -1402,17 +1402,22 @@ Dette vil bannlyse både deres forum brukernavn og deres IP adresse.</translatio
<translation>Gjem mus under inaktivitet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation>Deaktiver kontroller-appleten</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Tilbakestill alle innstillinger</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Dette tilbakestiller alle innstillinger og fjerner alle spillinnstillinger. Spillmapper, profiler og inndataprofiler blir ikke slettet. Fortsett?</translation>
</message>
@@ -1703,43 +1708,43 @@ Umiddelbar (ingen synkronisering) presenterer bare det som er tilgjengelig og ka
<translation>Bakgrunnsfarge:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (assembly-shader-e, kun med NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Eksperimentell, Kun Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Av</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>VSync Av</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Anbefalt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>På</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>VSync På</translation>
</message>
@@ -1864,37 +1869,57 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
<translation>Aktiver beregningsrørledninger (kun Intel Vulkan)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>Kjør spillet i normal hastighet under videoavspilling, selv når bildefrekvensen er låst opp.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>Synkroniser med bildefrekvensen for videoavspilling</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>Forbedrer gjengivelsen av transparenseffekter i spesifikke spill.</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation>Tilbakekoblingssløyfer for barrierer</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotropisk filtrering:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automatisk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Standard</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2277,7 +2302,7 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Konfigurer</translation>
</message>
@@ -2344,22 +2369,7 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
<translation>Bruk tilfeldig Amiibo ID</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Slå på musepanorering</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Musesensitivitet</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Bevegelse / Touch</translation>
</message>
@@ -2471,7 +2481,7 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Venstre Pinne</translation>
</message>
@@ -2565,14 +2575,14 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2591,7 +2601,7 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Pluss</translation>
</message>
@@ -2604,15 +2614,15 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2669,247 +2679,257 @@ Beregningsrørledninger er alltid aktivert på alle andre drivere.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Høyre Pinne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation>Musepanorering</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Konfigurer</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Fjern</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[ikke satt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Inverter knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Veksle knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Turbo-Knapp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Inverter akse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Set grense</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Velg en verdi mellom 0% og 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>veksle akse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Angi gyroterskel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Kalibrer sensor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Kartlegg Analog Spak</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Etter du har trykker på OK, flytt først stikken horisontalt, og så vertikalt.
For å invertere aksene, flytt først stikken vertikalt, og så horistonalt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Senterakse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Dødsone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modifikatorområde: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro-Kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Doble Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Venstre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Høyre Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Håndholdt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64-kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Start / paus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Kontrollstikke</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-stikke</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Rist!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[venter]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Ny Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Skriv inn et profilnavn:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Lag inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Det oppgitte profilenavnet er ugyldig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Klarte ikke lage inndataprofil &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Slett inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Klarte ikke slette inndataprofil &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Last inn inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Klarte ikke laste inn inndataprofil &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Lagre inndataprofil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Klarte ikke lagre inndataprofil &quot;%1&quot;</translation>
</message>
@@ -3089,6 +3109,81 @@ For å invertere aksene, flytt først stikken vertikalt, og så horistonalt.</tr
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation>Konfigurer musepanorering</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Aktiver</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation>Kan veksles via en hurtigtast</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation>Følsomhet</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation>Horisontal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation>Vertikal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation>Motvekt for dødssone</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation>Motvirker spillets innebygde dødsone</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation>Forfall av spaken</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation>Styrke</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation>Minimum</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Standard</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3164,47 +3259,47 @@ For å invertere aksene, flytt først stikken vertikalt, og så horistonalt.</tr
<translation>Utvikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Tillegg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Generelt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Avn. Grafikk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Lyd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Inndataprofiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
@@ -3407,8 +3502,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Hvis du vil bruke denne kontrolleren, må du konfigurere spiller 1 som høyre kontroller og spiller 2 som dobbel joycon før du starter spillet, slik at denne kontrolleren kan oppdages riktig.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation>For å bruke Ring-Con konfigurerer du spiller 1 som høyre Joy-Con (både fysisk og emulert) og spiller 2 som venstre Joy-Con (venstre fysisk og dobbelt emulert) før du starter spillet.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3444,7 +3539,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Aktiver</translation>
</message>
@@ -3511,12 +3606,17 @@ UUID: %2</translation>
<translation>Den gjeldende kartlagte enheten har ikke en ring festet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation>Den tilordnede enheten er ikke tilkoblet</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Uventet driverresultat %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[venter]</translation>
</message>
@@ -4626,560 +4726,575 @@ Dra punkter for å endre posisjon, eller dobbelttrykk på tabellfelter for å re
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonym data blir samlet inn&lt;/a&gt;for å hjelpe til med å forbedre yuzu.&lt;br/&gt;&lt;br/&gt;Vil du dele din bruksdata med oss?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Ødelagt Vulkan-installasjon oppdaget</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Vulkan-initialisering mislyktes under oppstart.&lt;br&gt;&lt;br&gt;Klikk&lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;her for instruksjoner for å løse problemet&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation>Kjører et spill</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Laster web-applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Slå av web-applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Deaktivering av webappleten kan føre til udefinert oppførsel og bør bare brukes med Super Mario 3D All-Stars. Er du sikker på at du vil deaktivere webappleten?
(Dette kan aktiveres på nytt i feilsøkingsinnstillingene).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Antall shader-e som bygges for øyeblikket</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Den valgte oppløsningsskaleringsfaktoren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Nåværende emuleringshastighet. Verdier høyere eller lavere en 100% indikerer at emuleringen kjører raskere eller tregere enn en Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Hvor mange bilder per sekund spiller viser. Dette vil variere fra spill til spill og scene til scene.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tid det tar for å emulere et Switch bilde. Teller ikke med bildebegrensing eller v-sync. For full-hastighet emulering burde dette være 16.67 ms. på det høyeste.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Slå på lyden</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Lydløs</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Tilbakestill volum</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Tøm Nylige Filer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Emulert mus er aktivert</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>Ekte museinndata og musepanning er inkompatible. Deaktiver den emulerte musen i avanserte innstillinger for inndata for å tillate musepanning.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Fortsett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Paus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>Et spill kjører i yuzu</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Advarsel: Utdatert Spillformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Du bruker en dekonstruert ROM-mappe for dette spillet, som er et utdatert format som har blitt erstattet av andre formater som NCA, NAX, XCI, eller NSP. Dekonstruerte ROM-mapper mangler ikoner, metadata, og oppdateringsstøtte.&lt;br&gt;&lt;br&gt;For en forklaring på diverse Switch-formater som yuzu støtter,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;sjekk vår wiki&lt;/a&gt;. Denne meldingen vil ikke bli vist igjen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Feil under innlasting av ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Dette ROM-formatet er ikke støttet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>En feil oppstod under initialisering av videokjernen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu har oppdaget en feil under kjøring av videokjernen. Dette er vanligvis forårsaket av utdaterte GPU-drivere, inkludert for integrert grafikk. Vennligst sjekk loggen for flere detaljer. For mer informasjon om å finne loggen, besøk følgende side: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Uploadd the Log File&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Feil under lasting av ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Vennligst følg &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;hurtigstartsguiden&lt;/a&gt; for å redumpe filene dine. &lt;br&gt;Du kan henvise til yuzu wikien&lt;/a&gt; eller yuzu Discorden&lt;/a&gt; for hjelp.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>En ukjent feil oppstod. Se loggen for flere detaljer.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Lukker programvare...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Lagre Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Feil Under Åpning av %1 Mappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Mappen eksisterer ikke!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Feil ved åpning av overførbar shaderbuffer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Kunne ikke opprette shader cache-katalogen for denne tittelen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Feil ved fjerning av innhold</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Feil ved fjerning av oppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Feil ved fjerning av DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Fjern Innstallert Spillinnhold?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Fjern Installert Spilloppdatering?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Fjern Installert Spill DLC?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Fjern oppføring</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Fjerning lykkes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Vellykket fjerning av det installerte basisspillet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Grunnspillet er ikke installert i NAND og kan ikke bli fjernet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Fjernet vellykket den installerte oppdateringen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Det er ingen oppdatering installert for denne tittelen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Det er ingen DLC installert for denne tittelen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Fjernet vellykket %1 installerte DLC-er.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Slette OpenGL Overførbar Shaderbuffer?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Slette Vulkan Overførbar Shaderbuffer?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Slette Alle Overførbare Shaderbuffere?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Fjern Tilpasset Spillkonfigurasjon?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation>Fjerne Hurtiglagringen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Fjern Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Feil under fjerning av overførbar shader cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>En shaderbuffer for denne tittelen eksisterer ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Lykkes i å fjerne den overførbare shader cachen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Feil under fjerning av den overførbare shader cachen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Feil ved fjerning av Vulkan Driver-Rørledningsbuffer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Kunne ikke fjerne driverens rørledningsbuffer.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Feil ved fjerning av overførbare shaderbuffere</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Vellykket fjerning av overførbare shaderbuffere.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Feil ved fjerning av overførbar shaderbuffer katalog.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Feil Under Fjerning Av Tilpasset Konfigurasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>En tilpasset konfigurasjon for denne tittelen finnes ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Fjernet vellykket den tilpassede spillkonfigurasjonen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Feil under fjerning av den tilpassede spillkonfigurasjonen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Utvinning av RomFS Feilet!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Det oppstod en feil under kopiering av RomFS filene eller så kansellerte brukeren operasjonen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Fullstendig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Skjelett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Velg RomFS Dump Modus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Velg hvordan du vil dumpe RomFS.&lt;br&gt;Fullstendig vil kopiere alle filene til en ny mappe mens &lt;br&gt;skjelett vil bare skape mappestrukturen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Det er ikke nok ledig plass på %1 til å pakke ut RomFS. Vennligst frigjør plass eller velg en annen dump-katalog under Emulering &gt; Konfigurer &gt; System &gt; Filsystem &gt; Dump Root.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Utvinner RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Utpakking lyktes!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Operasjonen fullført vellykket.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Lag Snarvei</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Dette vil opprette en snarvei til gjeldende AppImage. Dette fungerer kanskje ikke bra hvis du oppdaterer. Fortsette?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Kan ikke opprette snarvei på skrivebordet. Stien &quot;%1&quot; finnes ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Kan ikke opprette snarvei i applikasjonsmenyen. Stien &quot;%1&quot; finnes ikke og kan ikke opprettes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Lag Ikon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Kan ikke opprette ikonfil. Stien &quot;%1&quot; finnes ikke og kan ikke opprettes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Start %1 med yuzu-emulatoren</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Mislyktes i å opprette en snarvei ved %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Opprettet en snarvei til %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Feil ved åpning av %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Velg Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Spillets egenskaper kunne ikke bli lastet inn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Kjørbar Fil (%1);;Alle Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Last inn Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Åpne Utpakket ROM Mappe</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Ugyldig Mappe Valgt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Mappen du valgte inneholder ikke en &apos;main&apos; fil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installerbar Switch-Fil (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xcI)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Installer Filer</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n fil gjenstår</numerusform><numerusform>%n filer gjenstår</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installerer fil &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Insallasjonsresultater</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>For å unngå mulige konflikter fraråder vi brukere å installere basisspill på NAND.
Bruk kun denne funksjonen til å installere oppdateringer og DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n fil ble nylig installert
@@ -5187,7 +5302,7 @@ Bruk kun denne funksjonen til å installere oppdateringer og DLC.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n fil ble overskrevet
@@ -5195,7 +5310,7 @@ Bruk kun denne funksjonen til å installere oppdateringer og DLC.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n fil ble ikke installert
@@ -5203,388 +5318,312 @@ Bruk kun denne funksjonen til å installere oppdateringer og DLC.</translation>
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Systemapplikasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Systemarkiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Systemapplikasjonsoppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Firmware Pakke (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Firmware-Pakke (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Spill</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Spilloppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Spill tilleggspakke</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta Tittel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Velg NCA Installasjonstype...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vennligst velg typen tittel du vil installere denne NCA-en som:
(I de fleste tilfellene, standarden &apos;Spill&apos; fungerer.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Feil under Installasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Titteltypen du valgte for NCA-en er ugyldig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Fil ikke funnet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Filen &quot;%1&quot; ikke funnet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Krav til maskinvare ikke oppfylt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Systemet ditt oppfyller ikke de anbefalte maskinvarekravene. Kompatibilitetsrapportering er deaktivert.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Mangler yuzu Bruker</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>For å sende inn et testtilfelle for spillkompatibilitet, må du linke yuzu-brukeren din.&lt;br&gt;&lt;br/&gt;For å linke yuzu-brukeren din, gå til Emulasjon &amp;gt; Konfigurasjon &amp;gt; Nett.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Feil under åpning av URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Kunne ikke åpne URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS-innspilling</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Overskriv filen til spiller 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Ugyldig konfigurasjon oppdaget</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Håndholdt kontroller kan ikke brukes i dokket modus. Pro-kontroller vil bli valgt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Den valgte amiibo-en har blitt fjernet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Feil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Det kjørende spillet sjekker ikke for amiibo-er</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-Fil (%1);; Alle Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Last inn Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Feil ved lasting av Amiibo data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Den valgte filen er ikke en gyldig amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Den valgte filen er allerede i bruk</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>En ukjent feil oppso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Ta Skjermbilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG Bilde (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS-tilstand: Kjører %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS-tilstand: Spiller inn %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS-tilstand: Venter %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS-tilstand: Ugyldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Stopp kjøring</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Stopp innspilling (&amp;E)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>Spill inn (%E)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Bygger: %n shader</numerusform><numerusform>Bygger: %n shader-e</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Skala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Hastighet: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Hastighet: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Spill: %1 FPS (ubegrenset)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Spill: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Ramme: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU HØY</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EKSTREM</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU FEIL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>FORANKRET</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>HÅNDHOLDT</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NÆRMESTE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEÆR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BIKUBISK</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSISK</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>INGEN AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUM: DEMPET</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUM: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Bekreft Nøkkel-Redirevasjon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5601,37 +5640,37 @@ og eventuelt lag backups.
Dette vil slette dine autogenererte nøkkel-filer og kjøre nøkkel-derivasjonsmodulen på nytt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Mangler fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Mangler BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Mangler BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- Mangler PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Derivasjonskomponenter Mangler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Krypteringsnøkler mangler. &lt;br&gt;Vennligst følg &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzus oppstartsguide&lt;/a&gt; for å få alle nøklene, fastvaren og spillene dine.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5640,49 +5679,49 @@ Dette kan ta opp til et minutt avhengig
av systemytelsen din.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Deriverer Nøkler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>Dekryptering av systemarkiv mislyktes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>Krypteringsnøkler klarte ikke å dekryptere firmware. &lt;br&gt;Vennligst følg &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;quickstartguiden for yuzu &lt;/a&gt; for å få alle nøkler, firmware og spill.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Velg RomFS Dump-Mål</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vennligst velg hvilken RomFS du vil dumpe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Er du sikker på at du vil lukke yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Er du sikker på at du vil stoppe emulasjonen? All ulagret fremgang vil bli tapt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5690,48 +5729,143 @@ Would you like to bypass this and exit anyway?</source>
Vil du overstyre dette og lukke likevel?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Ingen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>Nærmest</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilineær</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bikubisk</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussisk</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Dokket</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Håndholdt</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Høy</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Ekstrem</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Null</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL ikke tilgjengelig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Delte OpenGL-kontekster støttes ikke.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu har ikke blitt kompilert med OpenGL-støtte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Feil under initialisering av OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Det kan hende at GPU-en din ikke støtter OpenGL, eller at du ikke har den nyeste grafikkdriveren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Feil under initialisering av OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Det kan hende at GPU-en din ikke støtter OpenGL 4.6, eller at du ikke har den nyeste grafikkdriveren.&lt;br&gt;&lt;br&gt;GL-renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Det kan hende at GPU-en din ikke støtter én eller flere nødvendige OpenGL-utvidelser. Vennligst sørg for at du har den nyeste grafikkdriveren.&lt;br&gt;&lt;br&gt;GL-renderer: &lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ikke-støttede utvidelser:&lt;br&gt;%2</translation>
</message>
@@ -6085,138 +6219,138 @@ Feilmelding:</translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Lyd av/på</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Hovedvindu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Lydvolum Ned</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Lydvolum Opp</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Ta Skjermbilde</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Endre tilpasningsfilter</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Endre forankret modus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Endre GPU-nøyaktighet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Fortsett/Pause Emuleringen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Avslutt fullskjerm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Avslutt yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Fullskjerm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Last inn Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Last/Fjern Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Omstart Emuleringen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Stopp Emuleringen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Spill inn TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Tilbakestill TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Start/Stopp TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Veksle Filterlinje</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Veksle Bildefrekvensgrense</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Veksle Muspanorering</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Veksle Statuslinje</translation>
</message>
@@ -6959,30 +7093,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[ikke satt]</translation>
</message>
@@ -6993,14 +7127,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Akse %1%2</translation>
</message>
@@ -7011,320 +7145,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[ukjent]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Venstre</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Høyre</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Ned</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Opp</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Sirkel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Kryss</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Firkant</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Trekant</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Del</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Instillinger</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[udefinert]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[ugyldig]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Akse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Akse %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Bevegelse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Knapp %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[ubrukt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Venstre Stikke</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Høyre Stikke</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Pluss</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Hjem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Opptak</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Hjul</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Bakover</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Fremover</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>oppgave</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Ekstra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Hat %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3Akse %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Knapp %4</translation>
</message>
diff --git a/dist/languages/nl.ts b/dist/languages/nl.ts
index b2fe2669e..070e4dba7 100644
--- a/dist/languages/nl.ts
+++ b/dist/languages/nl.ts
@@ -1119,78 +1119,78 @@ Dit zou zowel hun forum gebruikersnaam als hun IP-adres verbannen.</translation>
<translation>yuzu-configuratie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Bestandssysteem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Algemeen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Graphics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Geavanceerde Graphics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Sneltoetsen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Bediening</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profielen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Netwerk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Systeem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Spellijst</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1384,17 +1384,22 @@ Dit zou zowel hun forum gebruikersnaam als hun IP-adres verbannen.</translation>
<translation>Verberg muis wanneer inactief</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Reset Alle Instellingen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Hiermee worden alle instellingen gereset en alle configuraties per game verwijderd. Hiermee worden gamedirectory&apos;s, profielen of invoerprofielen niet verwijderd. Doorgaan?</translation>
</message>
@@ -1685,43 +1690,43 @@ Immediate (geen synchronisatie) presenteert gewoon wat beschikbaar is en kan sch
<translation>Achtergrondkleur:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, alleen NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Experimenteel, alleen Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Uit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>VSync Uit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Aanbevolen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>Aan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>VSync Aan</translation>
</message>
@@ -1761,12 +1766,12 @@ Immediate (geen synchronisatie) presenteert gewoon wat beschikbaar is en kan sch
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation type="unfinished"/>
+ <translation>BC1 (Lage Kwaliteit)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation type="unfinished"/>
+ <translation>BC3 (Gemiddelde kwaliteit)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
@@ -1846,37 +1851,57 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
<translation>Schakel Compute Pipelines in (alleen Intel Vulkan)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotrope Filtering:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automatisch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Standaard</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2259,7 +2284,7 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configureer</translation>
</message>
@@ -2326,22 +2351,7 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
<translation>Gebruik willekeurige Amiibo-ID</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Schakel muispanning in</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Muisgevoeligheid</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Beweging / Touch</translation>
</message>
@@ -2453,7 +2463,7 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Linker Stick</translation>
</message>
@@ -2547,14 +2557,14 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2573,7 +2583,7 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -2586,15 +2596,15 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2651,247 +2661,257 @@ Compute pipelines is altijd ingeschakeld bij alle andere drivers.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Rechter Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configureer</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Wis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[niet ingesteld]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Knop omkeren</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Schakel-knop</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Turbo-knop</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Spiegel as</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Stel drempel in</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Kies een waarde tussen 0% en 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Schakel as</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Stel gyro-drempel in</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Kalibreer sensor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation> Analoge Stick Toewijzen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Nadat je op OK hebt gedrukt, beweeg je de joystick eerst horizontaal en vervolgens verticaal.
Om de assen om te keren, beweeg je de joystick eerst verticaal en vervolgens horizontaal.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Midden as</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Deadzone: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modificatorbereik: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Twee Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Linker Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Rechter Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube-controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES-controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES-controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64-controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Begin / Onderbreken</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Control Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Schud!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[aan het wachten]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nieuw Profiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Voer een profielnaam in:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Maak Invoerprofiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>De ingevoerde profielnaam is niet geldig!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet maken</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Verwijder Invoerprofiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet verwijderen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Laad Invoerprofiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet laden</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Sla Invoerprofiel op</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Kon invoerprofiel &quot;%1&quot; niet opslaan</translation>
</message>
@@ -3071,6 +3091,81 @@ Om de assen om te keren, beweeg je de joystick eerst verticaal en vervolgens hor
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Inschakelen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Standaard</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3146,47 +3241,47 @@ Om de assen om te keren, beweeg je de joystick eerst verticaal en vervolgens hor
<translation>Ontwikkelaar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Algemeen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Systeem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Graphics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Adv. Graphics</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Invoerprofielen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Eigenschappen</translation>
</message>
@@ -3389,8 +3484,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Als je deze controller wilt gebruiken, configureer dan speler 1 als rechter controller en speler 2 als dual joycon voordat je het spel start, zodat deze controller goed wordt gedetecteerd.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3426,7 +3521,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Inschakelen</translation>
</message>
@@ -3493,12 +3588,17 @@ UUID: %2</translation>
<translation>Het huidige apparaat heeft geen ring</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Onverwacht driverresultaat %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[aan het wachten]</translation>
</message>
@@ -4608,560 +4708,575 @@ Versleep punten om de positie te veranderen, of dubbelklik op tabelcellen om waa
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Annonieme gegevens worden verzameld&lt;/a&gt; om yuzu te helpen verbeteren. &lt;br/&gt;&lt;br/&gt; Zou je jouw gebruiksgegevens met ons willen delen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetrie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Beschadigde Vulkan-installatie gedetecteerd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Vulkan-initialisatie mislukt tijdens het opstarten.&lt;br&gt;&lt;br&gt;Klik &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;hier voor instructies om het probleem op te lossen&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Web Applet Laden...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Schakel Webapplet uit</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Het uitschakelen van de webapplet kan leiden tot ongedefinieerd gedrag en mag alleen gebruikt worden met Super Mario 3D All-Stars. Weet je zeker dat je de webapplet wilt uitschakelen?
(Deze kan opnieuw worden ingeschakeld in de Debug-instellingen).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Het aantal shaders dat momenteel wordt gebouwd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>De huidige geselecteerde resolutieschaalmultiplier.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Huidige emulatiesnelheid. Waarden hoger of lager dan 100% geven aan dat de emulatie sneller of langzamer werkt dan een Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Hoeveel beelden per seconde het spel momenteel weergeeft. Dit varieert van spel tot spel en van scène tot scène.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tijd die nodig is om een Switch-beeld te emuleren, beeldbeperking of v-sync niet meegerekend. Voor emulatie op volle snelheid mag dit maximaal 16,67 ms zijn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Dempen opheffen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Dempen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Volume resetten</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Wis Recente Bestanden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Geëmuleerde muis is ingeschakeld</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>Echte muisinvoer en muispanning zijn niet compatibel. Schakel de geëmuleerde muis uit in de geavanceerde invoerinstellingen om muispanning mogelijk te maken.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Doorgaan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Onderbreken</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu is een spel aan het uitvoeren</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Waarschuwing Verouderd Spelformaat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Je gebruikt het gedeconstrueerde ROM-mapformaat voor dit spel, wat een verouderd formaat is dat vervangen is door andere zoals NCA, NAX, XCI, of NSP. Deconstructed ROM-mappen missen iconen, metadata, en update-ondersteuning.&lt;br&gt;&lt;br&gt;Voor een uitleg van de verschillende Switch-formaten die yuzu ondersteunt,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt; bekijk onze wiki&lt;/a&gt;. Dit bericht wordt niet meer getoond.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Fout tijdens het laden van een ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Het ROM-formaat wordt niet ondersteund.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Er is een fout opgetreden tijdens het initialiseren van de videokern.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu is een fout tegengekomen tijdens het uitvoeren van de videokern. Dit wordt meestal veroorzaakt door verouderde GPU-drivers, inclusief geïntegreerde. Zie het logboek voor meer details. Voor meer informatie over toegang tot het log, zie de volgende pagina: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Hoe upload je het logbestand&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Fout tijdens het laden van ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Volg de &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu snelstartgids&lt;/a&gt; om je bestanden te redumpen.&lt;br&gt;Je kunt de yuzu-wiki&lt;/a&gt;of de yuzu-Discord&lt;/a&gt; raadplegen voor hulp.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Een onbekende fout heeft plaatsgevonden. Kijk in de log voor meer details.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Software sluiten...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Save Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Fout tijdens het openen van %1 map</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Map bestaat niet!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Fout bij het openen van overdraagbare shader-cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Kon de shader-cache-map voor dit spel niet aanmaken.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Fout bij het verwijderen van de inhoud</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Fout bij het verwijderen van de update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Fout bij het verwijderen van DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Geïnstalleerde Spelinhoud Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Geïnstalleerde Spel-update Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Geïnstalleerde Spel-DLC Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Verwijder Invoer</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Met Succes Verwijderd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Het geïnstalleerde basisspel is succesvol verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Het basisspel is niet geïnstalleerd in de NAND en kan niet worden verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>De geïnstalleerde update is succesvol verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Er is geen update geïnstalleerd voor dit spel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Er is geen DLC geïnstalleerd voor dit spel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 geïnstalleerde DLC met succes verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Overdraagbare OpenGL-shader-cache Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Overdraagbare Vulkan-shader-cache Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Alle Overdraagbare Shader-caches Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Aangepaste Spelconfiguratie Verwijderen?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>Cache-opslag verwijderen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Verwijder Bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Fout bij het verwijderen van Overdraagbare Shader-cache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Er bestaat geen shader-cache voor dit spel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>De overdraagbare shader-cache is verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Kon de overdraagbare shader-cache niet verwijderen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Fout bij het verwijderen van Pijplijn-cache van Vulkan-driver</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Kon de pijplijn-cache van de driver niet verwijderen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Fout bij het verwijderen van overdraagbare shader-caches</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>De overdraagbare shader-caches zijn verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Kon de overdraagbare shader-cache-map niet verwijderen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Fout bij het verwijderen van aangepaste configuratie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Er bestaat geen aangepaste configuratie voor dit spel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>De aangepaste spelconfiguratie is verwijderd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Kon de aangepaste spelconfiguratie niet verwijderen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS-extractie Mislukt!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Er is een fout opgetreden bij het kopiëren van de RomFS-bestanden of de gebruiker heeft de bewerking geannuleerd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Volledig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Skelet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Selecteer RomFS-dumpmodus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Selecteer hoe je de RomFS gedumpt wilt hebben.&lt;br&gt;Volledig zal alle bestanden naar de nieuwe map kopiëren, terwijl &lt;br&gt;Skelet alleen de mapstructuur zal aanmaken.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Er is niet genoeg vrije ruimte op %1 om de RomFS uit te pakken. Maak ruimte vrij of kies een andere dumpmap bij Emulatie &gt; Configuratie &gt; Systeem &gt; Bestandssysteem &gt; Dump Root.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>RomFS uitpakken...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Annuleren</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS-extractie Geslaagd!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>De bewerking is succesvol voltooid.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Maak Snelkoppeling</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Dit maakt een snelkoppeling naar de huidige AppImage. Dit werkt mogelijk niet goed als je een update uitvoert. Doorgaan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Kan geen snelkoppeling op het bureaublad maken. Pad &quot;%1&quot; bestaat niet.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Kan geen snelkoppeling maken in toepassingen menu. Pad &quot;%1&quot; bestaat niet en kan niet worden aangemaakt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Maak Icoon</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Kan geen icoonbestand maken. Pad &quot;%1&quot; bestaat niet en kan niet worden aangemaakt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Voer %1 uiit met de yuzu-emulator</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Er is geen snelkoppeling gemaakt op %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Succesvol een snelkoppeling naar %1 gemaakt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Fout bij openen %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Selecteer Map</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Eigenschappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>De speleigenschappen kunnen niet geladen worden.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Executable (%1);;Alle Bestanden (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Laad Bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Open Uitgepakte ROM-map</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Ongeldige Map Geselecteerd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>De map die je hebt geselecteerd bevat geen &apos;main&apos;-bestand.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installeerbaar Switch-bestand (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Installeer Bestanden</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n bestand(en) resterend</numerusform><numerusform>%n bestand(en) resterend</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Bestand &quot;%1&quot; Installeren...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Installeerresultaten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Om mogelijke conflicten te voorkomen, raden we gebruikers af om basisgames te installeren op de NAND.
Gebruik deze functie alleen om updates en DLC te installeren.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n bestand(en) zijn recent geïnstalleerd
@@ -5169,7 +5284,7 @@ Gebruik deze functie alleen om updates en DLC te installeren.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n bestand(en) werden overschreven
@@ -5177,7 +5292,7 @@ Gebruik deze functie alleen om updates en DLC te installeren.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n bestand(en) niet geïnstalleerd
@@ -5185,388 +5300,312 @@ Gebruik deze functie alleen om updates en DLC te installeren.</translation>
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Systeemapplicatie</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Systeemarchief</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Systeemapplicatie-update</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Filmware-pakket (Type A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Filmware-pakket (Type B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Spel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Spelupdate</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Spel-DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Selecteer NCA-installatiesoort...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Selecteer het type titel waarin je deze NCA wilt installeren:
(In de meeste gevallen is de standaard &quot;Spel&quot; prima).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Installatie Mislukt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Het soort title dat je hebt geselecteerd voor de NCA is ongeldig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Bestand niet gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Bestand &quot;%1&quot; niet gevonden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Er is niet voldaan aan de hardwarevereisten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Je systeem voldoet niet aan de aanbevolen hardwarevereisten. Compatibiliteitsrapportage is uitgeschakeld.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>yuzu-account Ontbreekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Om een spelcompatibiliteitstest in te dienen, moet je je yuzu-account koppelen.&lt;br&gt;&lt;br/&gt;Om je yuzu-account te koppelen, ga naar Emulatie &amp;gt; Configuratie &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Fout bij het openen van URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Kan de URL &quot;%1&quot; niet openen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS-opname</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Het bestand van speler 1 overschrijven?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Ongeldige configuratie gedetecteerd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Handheld-controller kan niet gebruikt worden in docked-modus. Pro controller wordt geselecteerd.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>De huidige amiibo is verwijderd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Fout</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Het huidige spel is niet op zoek naar amiibo&apos;s</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo-bestand (%1);; Alle Bestanden (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Laad Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Fout tijdens het laden van de Amiibo-gegevens</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Het geselecteerde bestand is geen geldige amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Het geselecteerde bestand is al in gebruik</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Er is een onbekende fout opgetreden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Leg Schermafbeelding Vast</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG-afbeelding (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS-status: %1/%2 In werking</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS-status: %1 Aan het opnemen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS-status: %1/%2 Inactief</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS-status: Ongeldig</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Stop Uitvoering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Stop Opname</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>Opnemen</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Bouwen: %n shader(s)</numerusform><numerusform>Bouwen: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Schaal: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Snelheid: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Snelheid: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Spel: %1 FPS (Ontgrendeld)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Game: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Frame: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU HOOG</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREEM</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU FOUT</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>DOCKED</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>HANDHELD</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NEAREST</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBIC</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>GEEN AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUME: GEDEMPT</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUME: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Bevestig Sleutelherhaling</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5583,37 +5622,37 @@ en maak eventueel back-ups.
Dit zal je automatisch gegenereerde sleutelbestanden verwijderen en de sleutelafleidingsmodule opnieuw uitvoeren.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Missing fuses</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - BOOT0 Ontbreekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - BCPKG2-1-Normal-Main Ontbreekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - PRODINFO Ontbreekt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Afleidingscomponenten ontbreken</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Encryptiesleutels ontbreken. &lt;br&gt;Volg &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;de yuzu-snelstartgids&lt;/a&gt; om al je sleutels, firmware en spellen te krijgen.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5622,49 +5661,49 @@ Dit kan tot een minuut duren,
afhankelijk van de prestaties van je systeem.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Sleutels Afleiden</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>Decryptie van Systeemarchief Mislukt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>Encryptiesleutels zijn mislukt om firmware te decoderen. &lt;br&gt;Volg &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;de yuzu-snelstartgids&lt;/a&gt; om al je sleutels, firmware en games te krijgen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Selecteer RomFS-dumpdoel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Selecteer welke RomFS je zou willen dumpen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Weet je zeker dat je yuzu wilt sluiten?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Weet je zeker dat je de emulatie wilt stoppen? Alle niet opgeslagen voortgang zal verloren gaan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5672,48 +5711,143 @@ Would you like to bypass this and exit anyway?</source>
Wil je toch afsluiten?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Geen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubic</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussian</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Docked</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Handheld</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normaal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Hoog</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Extreem</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Nul</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL niet beschikbaar!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL gedeelde contexten worden niet ondersteund.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu is niet gecompileerd met OpenGL-ondersteuning.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Fout tijdens het initialiseren van OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Je GPU ondersteunt mogelijk geen OpenGL, of je hebt niet de laatste grafische stuurprogramma.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Fout tijdens het initialiseren van OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Je GPU ondersteunt mogelijk OpenGL 4.6 niet, of je hebt niet het laatste grafische stuurprogramma.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Je GPU ondersteunt mogelijk een of meer vereiste OpenGL-extensies niet. Zorg ervoor dat je het laatste grafische stuurprogramma hebt.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Ondersteunde extensies:&lt;br&gt;%2</translation>
</message>
@@ -5773,7 +5907,7 @@ Wil je toch afsluiten?</translation>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Cache-opslag verwijderen</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6067,138 +6201,138 @@ Debug-bericht: </translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Audio Dempen/Dempen Opheffen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Hoofdvenster</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Audiovolume Omlaag</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Audiovolume Omhoog</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Leg Schermafbeelding Vast</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Wijzig Aanpassingsfilter</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Wijzig Docked-modus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Wijzig GPU-nauwkeurigheid</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Emulatie Doorgaan/Onderbreken</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Volledig Scherm Afsluiten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>yuzu afsluiten</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Volledig Scherm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Laad Bestand</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Laad/Verwijder Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Herstart Emulatie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Stop Emulatie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>TAS Opname</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>TAS Reset</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS Start/Stop</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Schakel Filterbalk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Schakel Frameratelimiet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Schakel Muispanning</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Schakel Statusbalk</translation>
</message>
@@ -6941,30 +7075,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[niet aangegeven]</translation>
</message>
@@ -6975,14 +7109,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Axis %1%2</translation>
</message>
@@ -6993,320 +7127,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[onbekend]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Links</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Rechts</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Omlaag</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Omhoog</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Cirkel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Kruis</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Vierkant</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Driehoek</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Deel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opties</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[ongedefinieerd]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[ongeldig]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2As %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2As %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Beweging %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Knop %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[ongebruikt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Stick L</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Stick R</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Min</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Vastleggen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Wiel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Achteruit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Vooruit</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Taak</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Hat %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3As %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Knop %4</translation>
</message>
diff --git a/dist/languages/pl.ts b/dist/languages/pl.ts
index 19132bf95..2ee8cef47 100644
--- a/dist/languages/pl.ts
+++ b/dist/languages/pl.ts
@@ -381,17 +381,17 @@ To zbanuje jego/jej nick na forum, oraz jego/jej adres IP.</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="42"/>
<source>Output Device:</source>
- <translation type="unfinished"/>
+ <translation>Urządzenie wyjściowe:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="56"/>
<source>Input Device:</source>
- <translation type="unfinished"/>
+ <translation>Urządzenie wejściowe:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="70"/>
<source>Sound Output Mode:</source>
- <translation type="unfinished"/>
+ <translation>Tryb wyjścia dźwięku:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="78"/>
@@ -1131,78 +1131,78 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<translation>Ustawienia yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Dźwięk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Wyszukiwanie usterek</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>System plików</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Zaawansowana grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Skróty klawiszowe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Sterowanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profile</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Sieć</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Lista Gier</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1396,17 +1396,22 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<translation>Ukryj mysz przy braku aktywności</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Resetuj wszystkie ustawienia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Spowoduje to zresetowanie wszystkich ustawień i usunięcie wszystkich konfiguracji gier. Nie spowoduje to usunięcia katalogów gier, profili ani profili wejściowych. Kontynuować?</translation>
</message>
@@ -1472,7 +1477,7 @@ Gdy ta opcja jest włączona, niedopasowanie jest uruchamiane tylko wtedy, gdy d
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="209"/>
<source>VSync Mode:</source>
- <translation type="unfinished"/>
+ <translation>Tryb synchronizacji pionowej:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
@@ -1570,7 +1575,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="407"/>
<source>1.5X (1080p/1620p) [EXPERIMENTAL]</source>
- <translation type="unfinished"/>
+ <translation>1.5X (1080p/1620p) [Ekperymentalnie]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="412"/>
@@ -1600,12 +1605,12 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="437"/>
<source>7X (5040p/7560p)</source>
- <translation type="unfinished"/>
+ <translation>7X (5040p/7560p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="442"/>
<source>8X (5760p/8640p)</source>
- <translation type="unfinished"/>
+ <translation>8X (5760p/8640p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="468"/>
@@ -1640,7 +1645,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="501"/>
<source>AMD FidelityFX™️ Super Resolution</source>
- <translation type="unfinished"/>
+ <translation>AMD FidelityFX™️ Super Resolution</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="527"/>
@@ -1694,45 +1699,45 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Kolor tła</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Zgromadzone Shadery, tylko NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Eksperymentalne, Tylko Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
- <translation type="unfinished"/>
+ <translation>Wyłączone</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
- <translation type="unfinished"/>
+ <translation>VSync wyłączony</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
- <translation type="unfinished"/>
+ <translation>Zalecane</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
- <translation type="unfinished"/>
+ <translation>Włączone</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
- <translation type="unfinished"/>
+ <translation>VSync aktywny</translation>
</message>
</context>
<context>
@@ -1760,22 +1765,22 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="90"/>
<source>ASTC recompression:</source>
- <translation type="unfinished"/>
+ <translation>Rekompresja ASTC:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
<source>Uncompressed (Best quality)</source>
- <translation type="unfinished"/>
+ <translation>Brak (najlepsza jakość)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation type="unfinished"/>
+ <translation>BC1 (niska jakość)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation type="unfinished"/>
+ <translation>BC3 (średnia jakość)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
@@ -1800,7 +1805,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="139"/>
<source>Decode ASTC textures asynchronously (Hack)</source>
- <translation type="unfinished"/>
+ <translation>Dekoduj tekstury ASTC asynchronicznie (Hack)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="146"/>
@@ -1854,37 +1859,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtrowanie anizotropowe:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automatyczne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Domyślne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2267,7 +2292,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Konfiguruj</translation>
</message>
@@ -2334,22 +2359,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Włącz panoramowanie myszą</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Czułość myszy</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Ruch / Dotyk</translation>
</message>
@@ -2461,7 +2471,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Lewa gałka</translation>
</message>
@@ -2555,14 +2565,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2581,7 +2591,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
@@ -2594,15 +2604,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2659,247 +2669,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Prawa gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Konfiguruj</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Wyczyść</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[nie ustawione]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Odwróć przycisk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Przycisk Toggle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
- <translation type="unfinished"/>
+ <translation>Przycisk TURBO</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Odwróć oś</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Ustaw próg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Wybierz wartość od 0% do 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Przełącz oś</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Ustaw próg gyro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
- <translation type="unfinished"/>
+ <translation>Kalibracja sensora</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Przypisz Drążek Analogowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Po naciśnięciu OK, najpierw przesuń joystick w poziomie, a następnie w pionie.
Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Środkowa oś</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Martwa strefa: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Zasięg Modyfikatora: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Para Joyconów</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Lewy Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Prawy Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Kontroler GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Kontroler NES/Pegasus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Kontroler SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Kontroler N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Start / Pauza</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Lewa gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Potrząśnij!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[oczekiwanie]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Nowy profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Wpisz nazwę profilu:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Utwórz profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Podana nazwa profilu jest nieprawidłowa!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Nie udało się utworzyć profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Usuń profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Nie udało się usunąć profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Załaduj profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Nie udało się wczytać profilu wejściowego &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Zapisz profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Nie udało się zapisać profilu wejściowego &quot;%1&quot;</translation>
</message>
@@ -3079,6 +3099,81 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Domyślny</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3154,47 +3249,47 @@ Aby odwrócić osie, najpierw przesuń joystick pionowo, a następnie poziomo.</
<translation>Deweloper</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Dodatki</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Ogólne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Zaaw. Grafika</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Dźwięk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Profil wejściowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Właściwości</translation>
</message>
@@ -3397,8 +3492,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Jeżeli zamierzasz używać tego kontrolera, skonfiguruj Gracza 1 jako prawy kontroler oraz Gracza 2 jako podwójnego JoyCona przed uruchomieniem gry aby zezwolić temu kontrolerowi na jego poprawne wykrycie.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3434,7 +3529,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3447,7 +3542,7 @@ UUID: %2</translation>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="314"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="282"/>
<source>Not connected</source>
- <translation type="unfinished"/>
+ <translation>Niepodłączony</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="344"/>
@@ -3501,12 +3596,17 @@ UUID: %2</translation>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[oczekiwanie]</translation>
</message>
@@ -4616,561 +4716,576 @@ Przeciągnij punkty, aby zmienić pozycję, lub kliknij dwukrotnie komórki tabe
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dane anonimowe są gromadzone&lt;/a&gt; aby ulepszyć yuzu. &lt;br/&gt;&lt;br/&gt;Czy chcesz udostępnić nam swoje dane o użytkowaniu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Wykryto uszkodzoną instalację Vulkana</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Inicjalizacja Vulkana nie powiodła się podczas uruchamiania.&lt;br&gt;&lt;br&gt;Kliknij&lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;tutaj aby uzyskać instrukcje dotyczące rozwiązania tego problemu&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Ładowanie apletu internetowego...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Wyłącz Aplet internetowy</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Wyłączanie web appletu może doprowadzić do nieokreślonych zachowań - wyłączyć applet należy jedynie grając w Super Mario 3D All-Stars. Na pewno chcesz wyłączyć web applet?
(Można go ponownie włączyć w ustawieniach debug.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Ilość budowanych shaderów</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Obecnie wybrany mnożnik rozdzielczości.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Aktualna prędkość emulacji. Wartości większe lub niższe niż 100% wskazują, że emulacja działa szybciej lub wolniej niż Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Ile klatek na sekundę gra aktualnie wyświetla. To będzie się różnić w zależności od gry, od sceny do sceny.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Czas potrzebny do emulacji klatki na sekundę Switcha, nie licząc ograniczania klatek ani v-sync. Dla emulacji pełnej szybkości powinno to wynosić co najwyżej 16,67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Usuń Ostatnie pliki</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
- <translation type="unfinished"/>
+ <translation>Emulacja myszki jest aktywna</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Kontynuuj</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pauza</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu jest w trakcie gry</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>OSTRZEŻENIE! Nieaktualny format gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Używasz zdekonstruowanego formatu katalogu ROM dla tej gry, który jest przestarzałym formatem, który został zastąpiony przez inne, takie jak NCA, NAX, XCI lub NSP. W zdekonstruowanych katalogach ROM brakuje ikon, metadanych i obsługi aktualizacji.&lt;br&gt;&lt;br&gt; Aby znaleźć wyjaśnienie różnych formatów Switch obsługiwanych przez yuzu,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt; sprawdź nasze wiki&lt;/a&gt;. Ta wiadomość nie pojawi się ponownie.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Błąd podczas wczytywania ROMu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Ten format ROMu nie jest wspierany.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Wystąpił błąd podczas inicjowania rdzenia wideo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu napotkał błąd podczas uruchamiania rdzenia wideo. Jest to zwykle spowodowane przestarzałymi sterownikami GPU, w tym zintegrowanymi. Więcej szczegółów znajdziesz w pliku log. Więcej informacji na temat dostępu do log-u można znaleźć na następującej stronie: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Jak przesłać plik log&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Błąd podczas wczytywania ROMu! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Postępuj zgodnie z&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu quickstart guide&lt;/a&gt; aby zrzucić ponownie swoje pliki.&lt;br&gt;Możesz odwołać się do wiki yuzu&lt;/a&gt;lub discord yuzu &lt;/a&gt; po pomoc.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Wystąpił nieznany błąd. Więcej informacji można znaleźć w pliku log.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Zamykanie aplikacji...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Zapis danych</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Dane modów</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Błąd podczas otwarcia folderu %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Folder nie istnieje!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Błąd podczas otwierania przenośnej pamięci podręcznej Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Nie udało się stworzyć ścieżki shaderów dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Błąd podczas usuwania zawartości</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Błąd podczas usuwania aktualizacji</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Błąd podczas usuwania dodatków</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Czy usunąć zainstalowaną zawartość gry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Czy usunąć zainstalowaną aktualizację gry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Czy usunąć zainstalowane dodatki gry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Usuń wpis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Pomyślnie usunięto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Pomyślnie usunięto zainstalowaną grę.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Gra nie jest zainstalowana w NAND i nie może zostać usunięta.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Pomyślnie usunięto zainstalowaną łatkę.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Brak zainstalowanych łatek dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Brak zainstalowanych DLC dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Pomyślnie usunięto %1 zainstalowane DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Usunąć Transferowalne Shadery OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Usunąć Transferowalne Shadery Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Usunąć Wszystkie Transferowalne Shadery?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Usunąć niestandardową konfigurację gry?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>Usunąć pamięć podręczną?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Usuń plik</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Błąd podczas usuwania przenośnej pamięci podręcznej Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Pamięć podręczna Shaderów dla tego tytułu nie istnieje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Pomyślnie usunięto przenośną pamięć podręczną Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Nie udało się usunąć przenośnej pamięci Shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Błąd podczas usuwania pamięci podręcznej strumienia sterownika Vulkana</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Błąd podczas usuwania pamięci podręcznej strumienia sterownika.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Błąd podczas usuwania Transferowalnych Shaderów</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Pomyślnie usunięto transferowalne shadery.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Nie udało się usunąć ścieżki transferowalnych shaderów.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Błąd podczas usuwania niestandardowej konfiguracji</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Niestandardowa konfiguracja nie istnieje dla tego tytułu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Pomyślnie usunięto niestandardową konfiguracje gry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Nie udało się usunąć niestandardowej konfiguracji gry.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Wypakowanie RomFS nieudane!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Wystąpił błąd podczas kopiowania plików RomFS lub użytkownik anulował operację.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Pełny</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Szkielet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Wybierz tryb zrzutu RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Proszę wybrać w jaki sposób chcesz, aby zrzut pliku RomFS został wykonany. &lt;br&gt;Pełna kopia ze wszystkimi plikami do nowego folderu, gdy &lt;br&gt;skielet utworzy tylko strukturę folderu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Nie ma wystarczająco miejsca w %1 aby wyodrębnić RomFS.
Zwolnij trochę miejsca, albo zmień ścieżkę zrzutu RomFs w Emulacja&gt; Konfiguruj&gt; System&gt; System Plików&gt; Źródło Zrzutu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Wypakowywanie RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Anuluj</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Wypakowanie RomFS zakończone pomyślnie!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Operacja zakończona sukcesem.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Utwórz skrót</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Utworzy to skrót do obecnego AppImage. Może nie działać dobrze po aktualizacji. Kontynuować?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Nie można utworzyć skrótu na pulpicie. Ścieżka &quot;%1&quot; nie istnieje.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Nie można utworzyć skrótu w menu aplikacji. Ścieżka &quot;%1&quot; nie istnieje oraz nie może być utworzona.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Utwórz ikonę</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Nie można utworzyć pliku ikony. Ścieżka &quot;%1&quot; nie istnieje oraz nie może być utworzona.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Włącz %1 z emulatorem yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Nie udało się utworzyć skrótu pod %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Pomyślnie utworzono skrót do %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Błąd podczas otwierania %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Wybierz folder...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Właściwości</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Właściwości tej gry nie mogły zostać załadowane.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Plik wykonywalny Switcha (%1);;Wszystkie pliki (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Załaduj plik...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Otwórz folder wypakowanego ROMu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Wybrano niewłaściwy folder</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Folder wybrany przez ciebie nie zawiera &apos;głownego&apos; pliku.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Instalacyjne pliki Switch&apos;a (*.nca *.nsp *.xci);;Archiwum zawartości Nintendo (*.nca);;Pakiet poddany Nintendo (*.nsp);;Obraz z kartridża NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Zainstaluj pliki</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>1 plik został</numerusform><numerusform>%n plików zostało</numerusform><numerusform>%n plików zostało</numerusform><numerusform>%n plików zostało</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalowanie pliku &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Wynik instalacji</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Aby uniknąć ewentualnych konfliktów, odradzamy użytkownikom instalowanie gier na NAND.
Proszę, używaj tej funkcji tylko do instalowania łatek i DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>1 nowy plik został zainstalowany
@@ -5180,400 +5295,324 @@ Proszę, używaj tej funkcji tylko do instalowania łatek i DLC.</translation>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>1 plik został nadpisany</numerusform><numerusform>%n plików zostało nadpisane</numerusform><numerusform>%n plików zostało nadpisane</numerusform><numerusform>%n plików zostało nadpisane</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>1 pliku nie udało się zainstalować</numerusform><numerusform>%n plików nie udało się zainstalować</numerusform><numerusform>%n plików nie udało się zainstalować</numerusform><numerusform>%n plików nie udało się zainstalować</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Aplikacja systemowa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Archiwum systemu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Aktualizacja aplikacji systemowej</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Paczka systemowa (Typ A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Paczka systemowa (Typ B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Gra</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Aktualizacja gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Dodatek do gry</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Tytuł Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Wybierz typ instalacji NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Wybierz typ tytułu, do którego chcesz zainstalować ten NCA, jako:
(W większości przypadków domyślna &quot;gra&quot; jest w porządku.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Instalacja nieudana</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Typ tytułu wybrany dla NCA jest nieprawidłowy.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Nie znaleziono pliku</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Nie znaleziono pliku &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Wymagania sprzętowe nie są spełnione</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Twój system nie spełnia rekomendowanych wymagań sprzętowych. Raportowanie kompatybilności zostało wyłączone.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Brakuje konta Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Aby przesłać test zgodności gry, musisz połączyć swoje konto yuzu.&lt;br&gt;&lt;br/&gt; Aby połączyć swoje konto yuzu, przejdź do opcji Emulacja &amp;gt; Konfiguracja &amp;gt; Sieć.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Błąd otwierania adresu URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Nie można otworzyć adresu URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Nagrywanie TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Nadpisać plik gracza 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Wykryto nieprawidłową konfigurację</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Nie można używać kontrolera handheld w trybie zadokowanym. Zostanie wybrany kontroler Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Amiibo zostało &quot;zdjęte&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Błąd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Ta gra nie szuka amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Plik Amiibo (%1);;Wszyskie pliki (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Załaduj Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Błąd podczas ładowania pliku danych Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Wybrany plik nie jest poprawnym amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Wybrany plik jest już w użyciu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Wystąpił nieznany błąd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Zrób zrzut ekranu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Obrazek PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Status TAS: Działa %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Status TAS: Nagrywa %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Status TAS: Bezczynny %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Status TAS: Niepoprawny</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Wyłącz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Przestań N&amp;agrywać</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>N&amp;agraj</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Budowanie shadera</numerusform><numerusform>Budowanie: %n shaderów</numerusform><numerusform>Budowanie: %n shaderów</numerusform><numerusform>Budowanie: %n shaderów</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Skala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Prędkość: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Prędkość: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Gra: %1 FPS (Odblokowane)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Gra: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Klatka: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMALNE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU WYSOKIE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EKSTREMALNE</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>BŁĄD GPU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>TRYB ZADOKOWANY</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>TRYB PRZENOŚNY</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>Zero</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>NAJBLIŻSZY</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEARNY</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BIKUBICZNY</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>BEZ AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
- <translation type="unfinished"/>
+ <translation>Głośność: Wyciszony</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
- <translation type="unfinished"/>
+ <translation>Głośność: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Potwierdź ponowną aktywacje klucza</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5590,37 +5629,37 @@ i opcjonalnie tworzyć kopie zapasowe.
Spowoduje to usunięcie wygenerowanych automatycznie plików kluczy i ponowne uruchomienie modułu pochodnego klucza.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Brakujące bezpieczniki</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - Brak BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Brak BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - Brak PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Brak komponentów wyprowadzania</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Brakuje elementów, które mogą uniemożliwić zakończenie wyprowadzania kluczy. &lt;br&gt;Postępuj zgodnie z &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu quickstart guide&lt;/a&gt; aby zdobyć wszystkie swoje klucze i gry.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5629,49 +5668,49 @@ Zależnie od tego może potrwać do minuty
na wydajność twojego systemu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Wyprowadzanie kluczy...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Wybierz cel zrzutu RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Proszę wybrać RomFS, jakie chcesz zrzucić.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Czy na pewno chcesz zamknąć yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Czy na pewno chcesz zatrzymać emulację? Wszystkie niezapisane postępy zostaną utracone.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5679,48 +5718,143 @@ Would you like to bypass this and exit anyway?</source>
Czy chcesz to ominąć i mimo to wyjść?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Żadna (wyłączony)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinearny</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bikubiczny</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Kulisty</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Zadokowany</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Przenośnie</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normalny</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Wysoki</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL niedostępny!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Współdzielone konteksty OpenGL nie są obsługiwane.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu nie zostało skompilowane z obsługą OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Błąd podczas inicjowania OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Twoja karta graficzna może nie obsługiwać OpenGL lub nie masz najnowszych sterowników karty graficznej.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Błąd podczas inicjowania OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Twoja karta graficzna może nie obsługiwać OpenGL 4.6 lub nie masz najnowszych sterowników karty graficznej.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Twoja karta graficzna może nie obsługiwać co najmniej jednego wymaganego rozszerzenia OpenGL. Upewnij się, że masz najnowsze sterowniki karty graficznej&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Nieobsługiwane rozszerzenia:&lt;br&gt;%2</translation>
</message>
@@ -5780,7 +5914,7 @@ Czy chcesz to ominąć i mimo to wyjść?</translation>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Usuń pamięć podręczną</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6074,138 +6208,138 @@ Komunikat debugowania:</translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Wycisz/Odcisz Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Okno główne</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Zmniejsz głośność dźwięku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Zwiększ głośność dźwięku</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Zrób zrzut ekranu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Zmień filtr adaptacyjny</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Zmień tryb dokowania</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Zmień dokładność GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Kontynuuj/Zatrzymaj Emulację</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Wyłącz Pełny Ekran</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Wyjdź z yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Pełny ekran</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Załaduj plik...</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Załaduj/Usuń Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Zrestartuj Emulację</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Zatrzymaj Emulację</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Nagrywanie TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Reset TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS Start/Stop</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Pokaż pasek filtrowania</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Przełącz limit liczby klatek na sekundę</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Włącz przesuwanie myszką</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Przełącz pasek stanu</translation>
</message>
@@ -6948,30 +7082,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[nie ustawione]</translation>
</message>
@@ -6982,14 +7116,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Oś %1%2</translation>
</message>
@@ -7000,322 +7134,322 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[nieznane]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Lewo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Prawo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Dół</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Góra</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Kółko</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Krzyż</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Kwadrat</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Trójkąt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Udostępnij</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opcje</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[niezdefiniowane]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[niepoprawne]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Drążek %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Oś %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Oś %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Ruch %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Przycisk %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[nieużywane]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
- <translation type="unfinished"/>
+ <translation>Lewa gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
- <translation type="unfinished"/>
+ <translation>Prawa gałka</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Zrzut ekranu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Dotyk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Kółko</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Do tyłu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Do przodu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Zadanie</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Dodatkowe</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3Krzyżak %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3Oś %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
- <translation type="unfinished"/>
+ <translation>%1%2%3Przycisk %4</translation>
</message>
</context>
<context>
@@ -7736,7 +7870,7 @@ Spróbuj ponownie lub skontaktuj się z twórcą oprogramowania.</translation>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="167"/>
<source>Profile Creator</source>
- <translation type="unfinished"/>
+ <translation>Kreator profilu</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="170"/>
@@ -7747,12 +7881,12 @@ Spróbuj ponownie lub skontaktuj się z twórcą oprogramowania.</translation>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="173"/>
<source>Profile Icon Editor</source>
- <translation type="unfinished"/>
+ <translation>Edytor ikony profilu</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="176"/>
<source>Profile Nickname Editor</source>
- <translation type="unfinished"/>
+ <translation>Edytor ksywki profilowej</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_profile_select.cpp" line="198"/>
diff --git a/dist/languages/pt_BR.ts b/dist/languages/pt_BR.ts
index a81ba4c22..05545c04d 100644
--- a/dist/languages/pt_BR.ts
+++ b/dist/languages/pt_BR.ts
@@ -381,17 +381,17 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="42"/>
<source>Output Device:</source>
- <translation type="unfinished"/>
+ <translation>Dispositivo de Saída</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="56"/>
<source>Input Device:</source>
- <translation type="unfinished"/>
+ <translation>Dispositivo de Entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="70"/>
<source>Sound Output Mode:</source>
- <translation type="unfinished"/>
+ <translation>Modo de saída de som</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="78"/>
@@ -1137,78 +1137,78 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<translation>Configurações do yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Áudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Depuração</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Sistema de arquivos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GráficosAvançado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Teclas de atalho</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Controles</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Perfis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Rede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Lista de jogos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Rede</translation>
</message>
@@ -1402,17 +1402,22 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<translation>Esconder cursor do mouse quando em inatividade</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Redefinir todas as configurações</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Isto restaura todas as configurações e exclui as configurações individuais de todos os jogos. As pastas de jogos, perfis de jogos e perfis de controles não serão excluídos. Deseja prosseguir?</translation>
</message>
@@ -1478,7 +1483,7 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="209"/>
<source>VSync Mode:</source>
- <translation type="unfinished"/>
+ <translation>Modo de Sincronização vertical:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
@@ -1700,45 +1705,45 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Cor de fundo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders Assembly, apenas NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Experimental, Somente Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
- <translation type="unfinished"/>
+ <translation>Desligado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
- <translation type="unfinished"/>
+ <translation>Sincronização vertical desligada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
- <translation type="unfinished"/>
+ <translation>Recomendado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
- <translation type="unfinished"/>
+ <translation>Ligado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
- <translation type="unfinished"/>
+ <translation>Sincronização vertical ligada</translation>
</message>
</context>
<context>
@@ -1766,27 +1771,27 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="90"/>
<source>ASTC recompression:</source>
- <translation type="unfinished"/>
+ <translation>Recompressão ASTC:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
<source>Uncompressed (Best quality)</source>
- <translation type="unfinished"/>
+ <translation>Descompactado (Melhor qualidade)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation type="unfinished"/>
+ <translation>BC1 (Baixa qualidade)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation type="unfinished"/>
+ <translation>BC3 (Média qualidade)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
<source>Enable asynchronous presentation (Vulkan only)</source>
- <translation type="unfinished"/>
+ <translation>Ativar apresentação assíncrona (Somente Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="126"/>
@@ -1857,40 +1862,60 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="190"/>
<source>Enable Compute Pipelines (Intel Vulkan only)</source>
+ <translation>Ativar Compute Pipelines (Intel Vulkan only)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtragem anisotrópica:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automático</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Padrão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2273,7 +2298,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2332,30 +2357,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2733"/>
<source>Allows unlimited uses of the same Amiibo in games that would otherwise limit you to one use.</source>
- <translation type="unfinished"/>
+ <translation>Permite acesso ilimitado ao mesmo Amiibo que limitam o seu uso.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2742"/>
<source>Use random Amiibo ID</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Ativar o giro do mouse</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensibilidade do mouse</translation>
+ <translation>Utilizar ID Amiibo aleatório</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Movimento/toque</translation>
</message>
@@ -2467,7 +2477,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Analógico esquerdo</translation>
</message>
@@ -2561,14 +2571,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2587,7 +2597,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Mais</translation>
</message>
@@ -2600,15 +2610,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2665,247 +2675,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Analógico direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configurar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[não definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Inverter botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Alternar pressionamento do botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Botão Turbo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Inverter eixo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Definir limite</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Escolha um valor entre 0% e 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Alternar eixos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Definir limite do giroscópio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
- <translation type="unfinished"/>
+ <translation>Calibrar sensor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Mapear analógico</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Após pressionar OK, mova o seu direcional analógico primeiro horizontalmente e depois verticalmente.
Para inverter os eixos, mova seu analógico primeiro verticalmente e depois horizontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Eixo central</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Zona morta: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Alcance de modificador: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Par de Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon Esquerdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon Direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Controle de GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Controle NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Controle SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Controle N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Iniciar / Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Direcional de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Balance!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[esperando]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Novo perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Insira um nome para o perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Criar perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>O nome de perfil inserido não é válido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Falha ao criar o perfil de controle &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Excluir perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Falha ao excluir o perfil de controle &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Carregar perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Falha ao carregar o perfil de controle &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Salvar perfil de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Falha ao salvar o perfil de controle &quot;%1&quot;</translation>
</message>
@@ -3085,6 +3105,81 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Habilitar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Padrão</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3160,47 +3255,47 @@ Para inverter os eixos, mova seu analógico primeiro verticalmente e depois hori
<translation>Desenvolvedor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Adicionais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Gráf. avançados</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Áudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Perfis de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
@@ -3403,8 +3498,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Caso queira usar este controle, configure o jogador 1 como Joycon direito e o jogador 2 como par de Joycons antes de iniciar o jogo. Isso permitirá que o controle seja detectado corretamente.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3440,7 +3535,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Habilitar</translation>
</message>
@@ -3507,12 +3602,17 @@ UUID: %2</translation>
<translation>O dispositivo mapeado não tem um anel conectado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Resultado inesperado do driver %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[aguardando]</translation>
</message>
@@ -3923,7 +4023,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="484"/>
<source>Unsafe extended memory layout (8GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Layout de memória estendida inseguro (8GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="519"/>
@@ -4622,560 +4722,575 @@ Mova os pontos para mudar a posição, ou clique duas vezes nas células da tabe
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dados anônimos são recolhidos&lt;/a&gt; para ajudar a melhorar o yuzu. &lt;br/&gt;&lt;br/&gt;Gostaria de compartilhar os seus dados de uso conosco?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Detectada Instalação Defeituosa do Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>A inicialização do Vulkan falhou durante a carga do programa. &lt;br&gt;&lt;br&gt;Clique &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;aqui para instruções de como resolver o problema&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Carregando applet web...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Desativar o applet da web</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>A desativação do applet da web pode causar comportamento inesperado e deve apenas ser usada com Super Mario 3D All-Stars. Você deseja mesmo desativar o applet da web?
(Ele pode ser reativado nas configurações de depuração.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>A quantidade de shaders sendo construídos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>O atualmente multiplicador de escala de resolução selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocidade atual de emulação. Valores maiores ou menores que 100% indicam que a emulação está rodando mais rápida ou lentamente que em um Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quantos quadros por segundo o jogo está exibindo atualmente. Isto irá variar de jogo para jogo e cena para cena.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tempo que leva para emular um quadro do Switch, sem considerar o limitador de taxa de quadros ou a sincronização vertical. Um valor menor ou igual a 16.67 ms indica que a emulação está em velocidade plena.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Unmute</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Mute</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Redefinir volume</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Limpar arquivos recentes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Mouse emulado está habilitado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>Controle de mouse real e controle panorâmico do mouse são incompatíveis. Por favor desabilite a emulação do mouse em configurações avançadas de controles para permitir o controle panorâmico do mouse.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu está rodando um jogo</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Aviso - formato de jogo desatualizado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Você está usando neste jogo o formato de ROM desconstruída e extraída em uma pasta, que é um formato desatualizado que foi substituído por outros, como NCA, NAX, XCI ou NSP. Pastas desconstruídas de ROMs não possuem ícones, metadados e suporte a atualizações.&lt;br&gt;&lt;br&gt;Para saber mais sobre os vários formatos de ROMs de Switch compatíveis com o yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;confira a nossa wiki&lt;/a&gt;. Esta mensagem não será exibida novamente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Erro ao carregar a ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>O formato da ROM não é suportado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Ocorreu um erro ao inicializar o núcleo de vídeo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu encontrou um erro enquanto rodando o núcleo de vídeo. Normalmente isto é causado por drivers de GPU desatualizados, incluindo integrados. Por favor veja o registro para mais detalhes. Para mais informações em acesso ao registro por favor veja a seguinte página: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Como fazer envio de arquivo de registro&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Erro ao carregar a ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;o guia de início rápido&lt;/a&gt; para reextrair os seus arquivos.&lt;br&gt;Você pode consultar a wiki do yuzu&lt;/a&gt; ou o Discord do yuzu&lt;/a&gt; para obter ajuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ocorreu um erro desconhecido. Consulte o registro para mais detalhes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Encerrando software...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Dados de jogos salvos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Dados de mods</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Erro ao abrir a pasta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>A pasta não existe!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Erro ao abrir o cache de shaders transferível</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Falha ao criar o diretório de cache de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Erro ao Remover Conteúdos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Erro ao Remover Atualização</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Erro ao Remover DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Remover Conteúdo Instalado do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Remover Atualização Instalada do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Remover DLC Instalada do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Remover item</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Removido com sucesso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>O jogo base foi removido com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>O jogo base não está instalado na NAND e não pode ser removido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>A atualização instalada foi removida com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Não há nenhuma atualização instalada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Não há nenhum DLC instalado para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 DLC(s) instalados foram removidos com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Apagar todos os caches de shaders transferíveis?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Remover configurações customizadas do jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>Remover Armazenamento da Cache?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Remover arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Erro ao remover cache de shaders transferível</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Não existe um cache de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>O cache de shaders transferível foi removido com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Falha ao remover o cache de shaders transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Erro ao Remover Cache de Pipeline do Driver Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Falha ao remover o pipeline de cache do driver.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Erro ao remover os caches de shaders transferíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Os caches de shaders transferíveis foram removidos com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Falha ao remover o diretório do cache de shaders transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Erro ao remover as configurações customizadas do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Não há uma configuração customizada para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>As configurações customizadas do jogo foram removidas com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Falha ao remover as configurações customizadas do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Falha ao extrair RomFS!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Houve um erro ao copiar os arquivos RomFS ou o usuário cancelou a operação.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Extração completa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Apenas estrutura</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Selecione o modo de extração do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Selecione a forma como você gostaria que o RomFS seja extraído.&lt;br&gt;&quot;Extração completa&quot; copiará todos os arquivos para a nova pasta, enquanto que &lt;br&gt;&quot;Apenas estrutura&quot; criará apenas a estrutura de pastas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Não há espaço suficiente em %1 para extrair o RomFS. Por favor abra espaço ou selecione um diretório diferente em Emulação &gt; Configurar &gt; Sistema &gt; Sistema de arquivos &gt; Extrair raiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extraindo RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extração do RomFS concluida!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>A operação foi concluída com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Criar Atalho</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Isso irá criar um atalho para o AppImage atual. Isso pode não funcionar corretamente se você fizer uma atualização. Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Não foi possível criar um atalho na área de trabalho. O caminho &quot;%1&quot; não existe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Não foi possível criar um atalho no menu de aplicativos. O caminho &quot;%1&quot; não existe e não pode ser criado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Criar Ícone</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Não foi possível criar o arquivo de ícone. O caminho &quot;%1&quot; não existe e não pode ser criado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Iniciar %1 com o Emulador yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Falha ao criar um atalho em %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Atalho criado com sucesso em %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Erro ao abrir %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Selecionar pasta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>As propriedades do jogo não puderam ser carregadas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Executável do Switch (%1);;Todos os arquivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Carregar arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Abrir pasta da ROM extraída</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Pasta inválida selecionada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>A pasta que você selecionou não contém um arquivo &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Arquivo de Switch instalável (*.nca *.nsp *.xci);; Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Instalar arquivos</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n arquivo restante</numerusform><numerusform>%n arquivo(s) restante(s)</numerusform><numerusform>%n arquivo(s) restante(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalando arquivo &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Resultados da instalação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Para evitar possíveis conflitos, desencorajamos que os usuários instalem os jogos base na NAND.
Por favor, use esse recurso apenas para instalar atualizações e DLCs.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n arquivo(s) instalado(s)
@@ -5184,7 +5299,7 @@ Por favor, use esse recurso apenas para instalar atualizações e DLCs.</transla
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n arquivo(s) sobrescrito(s)
@@ -5193,7 +5308,7 @@ Por favor, use esse recurso apenas para instalar atualizações e DLCs.</transla
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n arquivo(s) não instalado(s)
@@ -5202,388 +5317,312 @@ Por favor, use esse recurso apenas para instalar atualizações e DLCs.</transla
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Aplicativo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Arquivo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Atualização de aplicativo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Pacote de firmware (tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Pacote de firmware (tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Atualização de jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC de jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Título delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Selecione o tipo de instalação do NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Selecione o tipo de título como o qual você gostaria de instalar este NCA:
(Na maioria dos casos, o padrão &apos;Jogo&apos; serve bem.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Falha ao instalar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>O tipo de título que você selecionou para o NCA é inválido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Arquivo não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Arquivo &quot;%1&quot; não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Requisitos de hardware não atendidos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Seu sistema não atende os requisitos de harwdare. O relatório de compatibilidade foi desabilitado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Conta do yuzu faltando</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Para enviar um caso de teste de compatibilidade de jogo, você precisa entrar com a sua conta do yuzu.&lt;br&gt;&lt;br/&gt;Para isso, vá para Emulação &amp;gt; Configurar... &amp;gt; Rede.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Erro ao abrir URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Não foi possível abrir o URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Gravando TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Sobrescrever arquivo do jogador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Configuração inválida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>O controle portátil não pode ser usado no modo encaixado na base. O Pro Controller será selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>O amiibo atual foi removido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>O jogo atual não está procurando amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Arquivo Amiibo (%1);; Todos os arquivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Carregar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Erro ao carregar dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>O arquivo selecionado não é um amiibo válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>O arquivo selecionado já está em uso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Ocorreu um erro desconhecido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Capturar tela</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Imagem PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Situação TAS: Rodando %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Situação TAS: Gravando %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Situação TAS: Repouso %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Situação TAS: Inválido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar de rodar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Iniciar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Parar G&amp;ravação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>G&amp;ravação</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Compilando: %n shader(s)</numerusform><numerusform>Compilando: %n shader(s)</numerusform><numerusform>Compilando: %n shader(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Velocidade: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Velocidade: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Jogo: %1 FPS (Desbloqueado)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Jogo: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Quadro: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU ALTA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREMA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>ERRO DE GPU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>ANCORADO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>PORTÁTIL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>VIZINHO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICÚBICO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIANO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>Sem AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUME: MUDO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUME: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Confirmar rederivação de chave</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5600,37 +5639,37 @@ e opcionalmente faça cópias de segurança.
Isto excluirá o seus arquivos de chaves geradas automaticamente, e reexecutar o módulo de derivação de chaves.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Faltando fusíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation> - Faltando BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - Faltando BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - Faltando PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Faltando componentes de derivação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Chaves de encriptação faltando. &lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;o guia de início rápido&lt;/a&gt; para extrair suas chaves, firmware e jogos. &lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5639,49 +5678,49 @@ Isto pode demorar até um minuto, dependendo
do desempenho do seu sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Derivando chaves</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
- <translation type="unfinished"/>
+ <translation>Falha a desencriptar o arquivo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
- <translation type="unfinished"/>
+ <translation>Chaves de encriptação falharam a desencriptar o firmware. &lt;br&gt;Por favor segue &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; para obter todas as tuas chaves, firmware e jogos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Selecionar alvo de extração do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Selecione qual RomFS você quer extrair.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Você deseja mesmo fechar o yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Deseja mesmo parar a emulação? Qualquer progresso não salvo será perdido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5689,48 +5728,143 @@ Would you like to bypass this and exit anyway?</source>
Deseja ignorar isso e sair mesmo assim?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Nenhum</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicúbico</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussiano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Na base</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Portátil</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Alto</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulcano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL não disponível!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Shared contexts do OpenGL não são suportados.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>O yuzu não foi compilado com suporte para OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Erro ao inicializar o OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Sua GPU pode não suportar OpenGL, ou você não possui o driver gráfico mais recente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Sua GPU pode não suportar o OpenGL 4.6, ou você não possui os drivers gráficos mais recentes.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensões não suportadas:&lt;br&gt;%2</translation>
</message>
@@ -5790,7 +5924,7 @@ Deseja ignorar isso e sair mesmo assim?</translation>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Remove a Cache do Armazenamento </translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6084,138 +6218,138 @@ Mensagem de depuração:</translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Mutar/Desmutar Áudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Janela Principal</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Volume Menos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Volume Mais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Capturar Tela</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Alterar Filtro de Adaptação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Alterar Modo de Ancoragem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Alterar Precisão da GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Continuar/Pausar Emulação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Sair da Tela Cheia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Sair do yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Tela Cheia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Carregar Arquivo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Carregar/Remover Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Reiniciar Emulação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Parar Emulação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Gravar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Reiniciar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Iniciar/Parar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Alternar Barra de Filtro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Alternar Limite de Quadros por Segundo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Alternar o Giro do Mouse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Alternar Barra de Status</translation>
</message>
@@ -6955,30 +7089,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[não definido]</translation>
</message>
@@ -6989,14 +7123,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Eixo %1%2</translation>
</message>
@@ -7007,320 +7141,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[desconhecido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Esquerda</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Direita</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Baixo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Cima</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Círculo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Cruz</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Quadrado</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triângulo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Compartilhar</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opções</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[indefinido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Direcional %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eixo %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixo %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimentação %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Botão %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[não utilizado]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Mais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Menos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Botão Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Capturar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Toque</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Volante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Para trás</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Para a frente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Tarefa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/pt_PT.ts b/dist/languages/pt_PT.ts
index 0a526cb12..704ffa0c4 100644
--- a/dist/languages/pt_PT.ts
+++ b/dist/languages/pt_PT.ts
@@ -381,17 +381,17 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="42"/>
<source>Output Device:</source>
- <translation type="unfinished"/>
+ <translation>Dispositivo de Saída</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="56"/>
<source>Input Device:</source>
- <translation type="unfinished"/>
+ <translation>Dispositivo de Entrada</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="70"/>
<source>Sound Output Mode:</source>
- <translation type="unfinished"/>
+ <translation>Modo de saída de som</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_audio.ui" line="78"/>
@@ -1127,78 +1127,78 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<translation>Configuração yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Depurar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Sistema de Ficheiros</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>GráficosAvançados</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Teclas de Atalhos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Controlos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Perfis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Rede</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Lista de Jogos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Rede</translation>
</message>
@@ -1392,17 +1392,22 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<translation>Esconder rato quando inactivo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Restaurar todas as configurações</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Isto restaura todas as configurações e remove as configurações específicas de cada jogo. As pastas de jogos, perfis de jogos e perfis de controlo não serão removidos. Continuar?</translation>
</message>
@@ -1468,7 +1473,7 @@ Isto banirá tanto o nome de usuário do fórum como o endereço IP.</translatio
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="209"/>
<source>VSync Mode:</source>
- <translation type="unfinished"/>
+ <translation>Modo de Sincronização vertical:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
@@ -1690,45 +1695,45 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Cor de fundo:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Shaders Assembly, apenas NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Experimental, Somente Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
- <translation type="unfinished"/>
+ <translation>Desligado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
- <translation type="unfinished"/>
+ <translation>Sincronização vertical desligada</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
- <translation type="unfinished"/>
+ <translation>Recomendado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
- <translation type="unfinished"/>
+ <translation>Ligado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
- <translation type="unfinished"/>
+ <translation>Sincronização vertical ligada</translation>
</message>
</context>
<context>
@@ -1756,27 +1761,27 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="90"/>
<source>ASTC recompression:</source>
- <translation type="unfinished"/>
+ <translation>Recompressão ASTC:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
<source>Uncompressed (Best quality)</source>
- <translation type="unfinished"/>
+ <translation>Descompactado (Melhor Q</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation type="unfinished"/>
+ <translation>BC1 (Baixa qualidade)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation type="unfinished"/>
+ <translation>BC3 (Média qualidade)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
<source>Enable asynchronous presentation (Vulkan only)</source>
- <translation type="unfinished"/>
+ <translation>Ativar apresentação assíncrona (Somente Vulkan)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="126"/>
@@ -1847,40 +1852,60 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="190"/>
<source>Enable Compute Pipelines (Intel Vulkan only)</source>
+ <translation>Ativar Compute Pipelines (Intel Vulkan only)</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Filtro Anisotrópico:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Automático</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Padrão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2263,7 +2288,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Configurar</translation>
</message>
@@ -2322,30 +2347,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2733"/>
<source>Allows unlimited uses of the same Amiibo in games that would otherwise limit you to one use.</source>
- <translation type="unfinished"/>
+ <translation>Permite acesso ilimitado ao mesmo Amiibo que limitam o seu uso.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2742"/>
<source>Use random Amiibo ID</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Ativar o giro do mouse</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Sensibilidade do rato</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
+ <translation>Utilizar ID Amiibo aleatório</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Movimento / Toque</translation>
</message>
@@ -2457,7 +2467,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Analógico Esquerdo</translation>
</message>
@@ -2551,14 +2561,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2577,7 +2587,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Mais</translation>
</message>
@@ -2590,15 +2600,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2655,247 +2665,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Analógico Direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Configurar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Limpar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[não definido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Inverter botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Alternar pressionamento do botão</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Botão Turbo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Inverter eixo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Definir limite</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Escolha um valor entre 0% e 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Alternar eixos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Definir limite do giroscópio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
- <translation type="unfinished"/>
+ <translation>Calibrar sensor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Mapear analógicos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Após pressionar OK, mova o seu analógico primeiro horizontalmente e depois verticalmente.
Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois horizontalmente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Eixo central</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Ponto Morto: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modificador de Alcance: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Comando Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joycons Duplos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon Esquerdo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon Direito</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Portátil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Controlador de depuração</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Controle NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Controle SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Controle N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Iniciar / Pausar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Direcional de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Abane!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[em espera]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Novo Perfil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Introduza um novo nome de perfil:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Criar perfil de controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>O nome de perfil dado não é válido!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Falha ao criar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Apagar Perfil de Controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Falha ao apagar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Carregar perfil de controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Falha ao carregar o perfil de controlo &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Guardar perfil de controlo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Falha ao guardar o perfil de controlo &quot;%1&quot;</translation>
</message>
@@ -3075,6 +3095,81 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Habilitar</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Padrão</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3150,47 +3245,47 @@ Para inverter os eixos, mova o seu analógico primeiro verticalmente e depois ho
<translation>Desenvolvedor</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Add-Ons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Geral</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Gráficos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Gráficos Avç.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Audio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Perfis de controle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
@@ -3393,8 +3488,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Caso queira usar este controle, configure o jogador 1 como Joycon direito e o jogador 2 como par de Joycons antes de iniciar o jogo. Isso permitirá que o controle seja detectado corretamente.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3430,7 +3525,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Habilitar</translation>
</message>
@@ -3497,12 +3592,17 @@ UUID: %2</translation>
<translation>O dispositivo mapeado não tem um anel conectado</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Resultado inesperado do driver %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[em espera]</translation>
</message>
@@ -3913,7 +4013,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="484"/>
<source>Unsafe extended memory layout (8GB DRAM)</source>
- <translation type="unfinished"/>
+ <translation>Layout de memória estendida inseguro (8GB DRAM)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="519"/>
@@ -4612,959 +4712,898 @@ Arrasta os pontos para mudar a posição, ou dá duplo-clique nas células da ta
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dados anônimos são coletados&lt;/a&gt;para ajudar a melhorar o yuzu.&lt;br/&gt;&lt;br/&gt;Gostaria de compartilhar seus dados de uso conosco?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetria</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Detectada Instalação Defeituosa do Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>A inicialização do Vulkan falhou durante a carga do programa. &lt;br&gt;&lt;br&gt;Clique &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;aqui para instruções de como resolver o problema&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>A Carregar o Web Applet ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Desativar Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>A desativação do applet da web pode causar comportamento inesperado e deve apenas ser usada com Super Mario 3D All-Stars. Você deseja mesmo desativar o applet da web?
(Ele pode ser reativado nas configurações de depuração.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Quantidade de shaders a serem construídos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>O atualmente multiplicador de escala de resolução selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Velocidade da emulação actual. Valores acima ou abaixo de 100% indicam que a emulação está sendo executada mais depressa ou mais devagar do que a Switch</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Quantos quadros por segundo o jogo está exibindo de momento. Isto irá variar de jogo para jogo e de cena para cena.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tempo gasto para emular um frame da Switch, sem contar o a limitação de quadros ou o v-sync. Para emulação de velocidade máxima, esta deve ser no máximo 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Unmute</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Mute</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Redefinir volume</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Limpar arquivos recentes</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Mouse emulado está habilitado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>Controle de mouse real e controle panorâmico do mouse são incompatíveis. Por favor desabilite a emulação do mouse em configurações avançadas de controles para permitir o controle panorâmico do mouse.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Continuar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Pausa</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu está rodando um jogo</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Aviso de Formato de Jogo Desactualizado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Você está usando o formato de directório ROM desconstruído para este jogo, que é um formato desactualizado que foi substituído por outros, como NCA, NAX, XCI ou NSP. Os directórios de ROM não construídos não possuem ícones, metadados e suporte de actualização.&lt;br&gt;&lt;br&gt;Para uma explicação dos vários formatos de Switch que o yuzu suporta,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Verifique a nossa Wiki&lt;/a&gt;. Esta mensagem não será mostrada novamente.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Erro ao carregar o ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>O formato do ROM não é suportado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Ocorreu um erro ao inicializar o núcleo do vídeo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu encontrou um erro enquanto rodando o núcleo de vídeo. Normalmente isto é causado por drivers de GPU desatualizados, incluindo integrados. Por favor veja o registro para mais detalhes. Para mais informações em acesso ao registro por favor veja a seguinte página: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Como fazer envio de arquivo de registro&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Erro ao carregar a ROM! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;a guia de início rápido do yuzu&lt;/a&gt; para fazer o redespejo dos seus arquivos.&lt;br&gt;Você pode consultar a wiki do yuzu&lt;/a&gt; ou o Discord do yuzu&lt;/a&gt; para obter ajuda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ocorreu um erro desconhecido. Por favor, veja o log para mais detalhes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Encerrando software...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Save Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod Data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Erro ao abrir a pasta %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>A Pasta não existe!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Erro ao abrir os Shader Cache transferíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Falha ao criar o diretório de cache de shaders para este título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Erro Removendo Conteúdos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Erro ao Remover Atualização</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Erro Removendo DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Remover Conteúdo Instalado do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Remover Atualização Instalada do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Remover DLC Instalada do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Remover Entrada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Removido com Sucesso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Removida a instalação do jogo base com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>O jogo base não está instalado no NAND e não pode ser removido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Removida a actualização instalada com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Não há actualização instalada neste título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Não há DLC instalado neste título.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Removido DLC instalado %1 com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Apagar o cache de shaders transferível do Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Apagar todos os caches de shaders transferíveis?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Remover Configuração Personalizada do Jogo?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>Remover Armazenamento da Cache?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Remover Ficheiro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Error ao Remover Cache de Shader Transferível</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>O Shader Cache para este titulo não existe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Removido a Cache de Shader Transferível com Sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Falha ao remover a cache de shader transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Erro ao Remover Cache de Pipeline do Driver Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Falha ao remover o pipeline de cache do driver.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Erro ao remover os caches de shaders transferíveis</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Os caches de shaders transferíveis foram removidos com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Falha ao remover o diretório do cache de shaders transferível.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Erro ao Remover Configuração Personalizada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Não existe uma configuração personalizada para este titúlo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Removida a configuração personalizada do jogo com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Falha ao remover a configuração personalizada do jogo.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>A Extração de RomFS falhou!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Houve um erro ao copiar os arquivos RomFS ou o usuário cancelou a operação.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Cheio</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Esqueleto</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Selecione o modo de despejo do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Por favor, selecione a forma como você gostaria que o RomFS fosse despejado&lt;br&gt;Full irá copiar todos os arquivos para o novo diretório enquanto&lt;br&gt;skeleton criará apenas a estrutura de diretórios.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>Não há espaço suficiente em %1 para extrair o RomFS. Por favor abra espaço ou selecione um diretório diferente em Emulação &gt; Configurar &gt; Sistema &gt; Sistema de arquivos &gt; Extrair raiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extraindo o RomFS ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Cancelar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Extração de RomFS Bem-Sucedida!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>A operação foi completa com sucesso.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Criar Atalho</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Isso irá criar um atalho para o AppImage atual. Isso pode não funcionar corretamente se você fizer uma atualização. Continuar?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Não foi possível criar um atalho na área de trabalho. O caminho &quot;%1&quot; não existe.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Não foi possível criar um atalho no menu de aplicativos. O caminho &quot;%1&quot; não existe e não pode ser criado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Criar Ícone</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Não foi possível criar o arquivo de ícone. O caminho &quot;%1&quot; não existe e não pode ser criado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Iniciar %1 com o Emulador Yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Falha ao criar um atalho em %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Atalho criado com sucesso em %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Erro ao abrir %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Selecione o Diretório</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Propriedades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>As propriedades do jogo não puderam ser carregadas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Executáveis Switch (%1);;Todos os Ficheiros (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Carregar Ficheiro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Abrir o directório ROM extraído</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Diretório inválido selecionado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>O diretório que você selecionou não contém um arquivo &apos;Main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Ficheiro Switch Instalável (*.nca *.nsp *.xci);;Arquivo de Conteúdo Nintendo (*.nca);;Pacote de Envio Nintendo (*.nsp);;Imagem de Cartucho NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Instalar Ficheiros</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
- <translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
+ <translation><numerusform>%n arquivo restante</numerusform><numerusform>%n ficheiro(s) remanescente(s)</numerusform><numerusform>%n ficheiro(s) remanescente(s)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Instalando arquivo &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Instalar Resultados</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Para evitar possíveis conflitos, desencorajamos que os utilizadores instalem os jogos base na NAND.
Por favor, use esse recurso apenas para instalar atualizações e DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Aplicação do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Arquivo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Atualização do aplicativo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Pacote de Firmware (Tipo A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Pacote de Firmware (Tipo B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Actualização do Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC do Jogo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Título Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Selecione o tipo de instalação do NCA ...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Por favor, selecione o tipo de título que você gostaria de instalar este NCA como:
(Na maioria dos casos, o padrão &apos;Jogo&apos; é suficiente).</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Falha na instalação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>O tipo de título que você selecionou para o NCA é inválido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Arquivo não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Arquivo &quot;%1&quot; não encontrado</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Requisitos de hardware não atendidos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Seu sistema não atende os requisitos de harwdare. O relatório de compatibilidade foi desabilitado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Conta Yuzu Ausente</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Para enviar um caso de teste de compatibilidade de jogos, você deve vincular sua conta yuzu.&lt;br&gt;&lt;br/&gt;Para vincular sua conta yuzu, vá para Emulação &amp;gt; Configuração &amp;gt; Rede.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Erro ao abrir URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Não foi possível abrir o URL &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Gravando TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Sobrescrever arquivo do jogador 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Configação inválida detectada</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>O comando portátil não pode ser usado no modo encaixado na base. O Pro controller será selecionado.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>O amiibo atual foi removido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Erro</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>O jogo atual não está procurando amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Arquivo Amiibo (%1);; Todos os Arquivos (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Carregar Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Erro ao carregar dados do Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>O arquivo selecionado não é um amiibo válido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>O arquivo selecionado já está em uso</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Ocorreu um erro desconhecido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Captura de Tela</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Imagem PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Situação TAS: Rodando %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Situação TAS: Gravando %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Situação TAS: Repouso %1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Situação TAS: Inválido</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Parar de rodar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Começar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>Parar G&amp;ravação</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>G&amp;ravação</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Escala: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Velocidade: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Velocidade: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Jogo: %1 FPS (Desbloqueado)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Jogo: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Quadro: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU ALTA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREMA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>ERRO DE GPU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>ANCORADO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>PORTÁTIL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>VIZINHO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICÚBICO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSSIANO</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>Sem AA</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>VOLUME: MUDO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>VOLUME: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Confirme a rederivação da chave</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5581,37 +5620,37 @@ e opcionalmente faça backups.
Isso irá excluir os seus arquivos de chave gerados automaticamente e executará novamente o módulo de derivação de chave.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Fusíveis em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Componentes de Derivação em Falta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Chaves de encriptação faltando. &lt;br&gt;Por favor, siga &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;o guia de início rápido&lt;/a&gt; para extrair suas chaves, firmware e jogos. &lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5620,49 +5659,49 @@ Isto pode demorar até um minuto, dependendo
do desempenho do seu sistema.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Derivando Chaves</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
- <translation type="unfinished"/>
+ <translation>Falha a desencriptar o arquivo do sistema</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
- <translation type="unfinished"/>
+ <translation>Chaves de encriptação falharam a desencriptar o firmware. &lt;br&gt;Por favor segue &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; para obter todas as tuas chaves, firmware e jogos.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Selecione o destino de despejo do RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Por favor, selecione qual o RomFS que você gostaria de despejar.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Tem a certeza que quer fechar o yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Tem a certeza de que quer parar a emulação? Qualquer progresso não salvo será perdido.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5670,48 +5709,143 @@ Would you like to bypass this and exit anyway?</source>
Deseja ignorar isso e sair mesmo assim?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Nenhum</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicúbico</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gaussiano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Ancorado</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Portátil</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Normal</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Alto</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulcano</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL não está disponível!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Shared contexts do OpenGL não são suportados.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu não foi compilado com suporte OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Erro ao inicializar OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>O seu GPU pode não suportar OpenGL, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>O teu GPU pode não suportar OpenGL 4.6, ou não tem os drivers gráficos mais recentes.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.&lt;br&gt;&lt;br&gt;Renderizador GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Extensões não suportadas:&lt;br&gt;%2</translation>
</message>
@@ -5771,7 +5905,7 @@ Deseja ignorar isso e sair mesmo assim?</translation>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Remove a Cache do Armazenamento </translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6065,138 +6199,138 @@ Mensagem de depuração:</translation>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Mutar/Desmutar Áudio</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Janela Principal</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Volume Menos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Volume Mais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Captura de Tela</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Alterar Filtro de Adaptação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Alterar Modo de Ancoragem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Alterar Precisão da GPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Continuar/Pausar Emulação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Sair da Tela Cheia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Sair do yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Tela Cheia</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Carregar Ficheiro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Carregar/Remover Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Reiniciar Emulação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Parar Emulação</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Gravar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Reiniciar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Iniciar/Parar TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Alternar Barra de Filtro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Alternar Limite de Quadros por Segundo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Alternar o Giro do Mouse</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Alternar Barra de Status</translation>
</message>
@@ -6936,30 +7070,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[não configurado]</translation>
</message>
@@ -6970,14 +7104,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Eixo %1%2</translation>
</message>
@@ -6988,320 +7122,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[Desconhecido]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Esquerda</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Direita</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Baixo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Cima</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Começar</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Círculo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Cruz</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Quadrado</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triângulo</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Compartilhar</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Opções</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[indefinido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[inválido]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Direcional %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eixo %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eixo %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Movimentação %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Botão %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[sem uso]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Mais</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Menos</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Capturar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Toque</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Volante</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Para trás</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Para a frente</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Tarefa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/ru_RU.ts b/dist/languages/ru_RU.ts
index 672fa78b0..b623a5dbd 100644
--- a/dist/languages/ru_RU.ts
+++ b/dist/languages/ru_RU.ts
@@ -36,7 +36,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/aboutdialog.ui" line="130"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://yuzu-emu.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Website&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Source Code&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/graphs/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Contributors&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/blob/master/LICENSE.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;License&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://yuzu-emu.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Веб-сайт&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Исходный код&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/graphs/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Соавторы&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/blob/master/LICENSE.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Лицензия&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;a href=&quot;https://yuzu-emu.org/&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Веб-сайт&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Исходный код&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/graphs/contributors&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Контрибьюторы&lt;/span&gt;&lt;/a&gt; | &lt;a href=&quot;https://github.com/yuzu-emu/yuzu/blob/master/LICENSE.txt&quot;&gt;&lt;span style=&quot; text-decoration: underline; color:#039be5;&quot;&gt;Лицензия&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/aboutdialog.ui" line="146"/>
@@ -1137,78 +1137,78 @@ This would ban both their forum username and their IP address.</source>
<translation>Параметры yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Звук</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>ЦП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Отладка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Файловая система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Общие</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Графика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>ГрафикаРасширенные</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Горячие клавиши</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Управление</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Профили</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Сеть</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Список игр</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Сеть</translation>
</message>
@@ -1402,17 +1402,22 @@ This would ban both their forum username and their IP address.</source>
<translation>Спрятать мышь при неактивности</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Сбросить все настройки</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Это сбросит все настройки и удалит все конфигурации под отдельные игры. При этом не будут удалены пути для игр, профили или профили ввода. Продолжить?</translation>
</message>
@@ -1486,10 +1491,10 @@ This would ban both their forum username and their IP address.</source>
FIFO Relaxed is similar to FIFO but allows tearing as it recovers from a slow down.
Mailbox can have lower latency than FIFO and does not tear but may drop frames.
Immediate (no synchronization) just presents whatever is available and can exhibit tearing.</source>
- <translation>FIFO (VSync) не пропускает кадры и не имеет разрывов, но ограничен частотой обновления экрана.
+ <translation>FIFO (Верт. синхронизация) не пропускает кадры и не имеет разрывов, но ограничен частотой обновления экрана.
FIFO Relaxed похож на FIFO, но может иметь разрывы при восстановлении после просадок.
Mailbox может иметь меньшую задержку, чем FIFO, и не имеет разрывов, но может пропускать кадры.
-Моментальный (без синхронизации) просто показывает все кадры и может иметь разрывы.</translation>
+Моментальная (без синхронизации) просто показывает все кадры и может иметь разрывы.</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="247"/>
@@ -1703,43 +1708,43 @@ Mailbox может иметь меньшую задержку, чем FIFO, и
<translation>Фоновый цвет:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (ассемблерные шейдеры, только для NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Экспериментально, только для Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Отключена</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>Верт. синхронизация отключена</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Рекомендуется</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>Включена</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>Верт. синхронизация включена</translation>
</message>
@@ -1864,37 +1869,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>Включить вычислительные конвейеры (только для Intel Vulkan)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Анизотропная фильтрация:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Автоматически</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Стандартная</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2277,7 +2302,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Настроить</translation>
</message>
@@ -2344,22 +2369,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>Использовать случайный идентификатор Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Включить панорамирование мыши</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Чувствительность мыши</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Движение и сенсор</translation>
</message>
@@ -2471,7 +2481,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Левый мини-джойстик</translation>
</message>
@@ -2560,19 +2570,19 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="848"/>
<source>D-Pad</source>
- <translation>Кнопки направлений</translation>
+ <translation>Крестовина</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2591,7 +2601,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Плюс</translation>
</message>
@@ -2604,15 +2614,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2669,247 +2679,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Правый мини-джойстик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Настроить</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Очистить</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[не задано]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Инвертировать кнопку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Переключить кнопку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Турбо кнопка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Инвертировать оси</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Установить порог</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Выберите значение между 0% и 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Переключить оси</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Установить порог гироскопа</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Калибровка датчика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Задать аналоговый мини-джойстик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>После нажатия на ОК, двигайте ваш мини-джойстик горизонтально, а затем вертикально.
Чтобы инвертировать оси, сначала двигайте ваш мини-джойстик вертикально, а затем горизонтально.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Центрировать оси</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Мёртвая зона: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Диапазон модификатора: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Контроллер Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Двойные Joy-Con&apos;ы</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Левый Joy-Сon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Правый Joy-Сon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Портативный</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Контроллер GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Контроллер NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Контроллер SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Контроллер N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Старт / Пауза</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Мини-джойстик управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Джойстик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Встряхните!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[ожидание]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Новый профиль</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Введите имя профиля:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Создать профиль управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Заданное имя профиля недействительно!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Не удалось создать профиль управления &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Удалить профиль управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Не удалось удалить профиль управления &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Загрузить профиль управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Не удалось загрузить профиль управления &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Сохранить профиль управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Не удалось сохранить профиль управления &quot;%1&quot;</translation>
</message>
@@ -3089,6 +3109,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Включить</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>По умолчанию</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3164,47 +3259,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Разработчик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Дополнения</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Общие</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>ЦП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Графика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Расш. Графика</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Звук</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Профили управления</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Свойства</translation>
</message>
@@ -3407,8 +3502,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Если вы хотите использовать этот контроллер, настройте игрока 1 как правый контроллер, а игрока 2 как двойной Joy-Сon перед началом игры, чтобы этот контроллер был обнаружен правильно.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3444,7 +3539,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Включить</translation>
</message>
@@ -3511,12 +3606,17 @@ UUID: %2</translation>
<translation>К текущему устройству не прикреплено кольцо</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Неожиданный результат драйвера %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[ожидание]</translation>
</message>
@@ -3822,7 +3922,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="329"/>
<source>American English</source>
- <translation>Американский Английский</translation>
+ <translation>Американский английский</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="334"/>
@@ -3877,32 +3977,32 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="384"/>
<source>British English</source>
- <translation>Британский Английский</translation>
+ <translation>Британский английский</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="389"/>
<source>Canadian French</source>
- <translation>Канадский Французский</translation>
+ <translation>Канадский французский</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="394"/>
<source>Latin American Spanish</source>
- <translation>Латиноамериканский Испанский</translation>
+ <translation>Латиноамериканский испанский</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="399"/>
<source>Simplified Chinese</source>
- <translation>Упрощённый Китайский</translation>
+ <translation>Упрощённый китайский</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="404"/>
<source>Traditional Chinese (正體中文)</source>
- <translation>Традиционный Китайский (正體中文)</translation>
+ <translation>Традиционный китайский (正體中文)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="409"/>
<source>Brazilian Portuguese (português do Brasil)</source>
- <translation>Бразильский Португальский (português do Brasil)</translation>
+ <translation>Бразильский португальский (português do Brasil)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="417"/>
@@ -4626,560 +4726,575 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Анонимные данные собираются для того,&lt;/a&gt; чтобы помочь улучшить работу yuzu. &lt;br/&gt;&lt;br/&gt;Хотели бы вы делиться данными об использовании с нами?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Телеметрия</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Обнаружена поврежденная установка Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Не удалось выполнить инициализацию Vulkan во время загрузки.&lt;br&gt;&lt;br&gt;Нажмите &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;здесь для получения инструкций по устранению проблемы&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Загрузка веб-апплета...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Отключить веб-апплет</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Отключение веб-апплета может привести к неожиданному поведению и должно использоваться только с Super Mario 3D All-Stars. Вы уверены, что хотите отключить веб-апплет?
(Его можно снова включить в настройках отладки.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Количество создаваемых шейдеров на данный момент</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Текущий выбранный множитель масштабирования разрешения.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Текущая скорость эмуляции. Значения выше или ниже 100% указывают на то, что эмуляция идет быстрее или медленнее, чем на Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Количество кадров в секунду в данный момент. Значение будет меняться между играми и сценами.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Время, которое нужно для эмуляции 1 кадра Switch, не принимая во внимание ограничение FPS или вертикальную синхронизацию. Для эмуляции в полной скорости значение должно быть не больше 16,67 мс.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Включить звук</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Выключить звук</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Сбросить громкость</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>[&amp;C] Очистить недавние файлы</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Эмулированная мышь включена</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>Ввод реальной мыши и панорамирование мышью несовместимы. Пожалуйста, отключите эмулированную мышь в расширенных настройках ввода, чтобы разрешить панорамирование мышью.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>[&amp;C] Продолжить</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>[&amp;P] Пауза</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>В yuzu запущена игра</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Предупреждение устаревший формат игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Для этой игры вы используете разархивированный формат ROM&apos;а, который является устаревшим и был заменен другими, такими как NCA, NAX, XCI или NSP. В разархивированных каталогах ROM&apos;а отсутствуют иконки, метаданные и поддержка обновлений. &lt;br&gt;&lt;br&gt;Для получения информации о различных форматах Switch, поддерживаемых yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;просмотрите нашу вики&lt;/a&gt;. Это сообщение больше не будет отображаться.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Ошибка при загрузке ROM&apos;а!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Формат ROM&apos;а не поддерживается.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Произошла ошибка при инициализации видеоядра.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu столкнулся с ошибкой при запуске видеоядра. Обычно это вызвано устаревшими драйверами ГП, включая интегрированные. Проверьте журнал для получения более подробной информации. Дополнительную информацию о доступе к журналу смотрите на следующей странице: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Как загрузить файл журнала&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Ошибка при загрузке ROM&apos;а! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Пожалуйста, следуйте &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;краткому руководству пользователя yuzu&lt;/a&gt; чтобы пере-дампить ваши файлы&lt;br&gt;Вы можете обратиться к вики yuzu&lt;/a&gt; или Discord yuzu&lt;/a&gt; для помощи.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Произошла неизвестная ошибка. Пожалуйста, проверьте журнал для подробностей.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-х битный)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-х битный)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Закрываем программу...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Сохранения</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Данные модов</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Ошибка при открытии папки %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Папка не существует!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Ошибка при открытии переносного кэша шейдеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Не удалось создать папку кэша шейдеров для этой игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Ошибка при удалении содержимого</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Ошибка при удалении обновлений</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Ошибка при удалении DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Удалить установленное содержимое игр?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Удалить установленные обновления игры?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Удалить установленные DLC игры?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Удалить запись</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Успешно удалено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Установленная игра успешно удалена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Игра не установлена в NAND и не может быть удалена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Установленное обновление успешно удалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Для этой игры не было установлено обновление.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Для этой игры не были установлены DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Установленное DLC %1 было успешно удалено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Удалить переносной кэш шейдеров OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Удалить переносной кэш шейдеров Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Удалить весь переносной кэш шейдеров?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Удалить пользовательскую настройку игры?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>Убрать хранилище Cache?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Удалить файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Ошибка при удалении переносного кэша шейдеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Кэш шейдеров для этой игры не существует.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Переносной кэш шейдеров успешно удалён.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Не удалось удалить переносной кэш шейдеров.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Ошибка при удалении конвейерного кэша Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Не удалось удалить конвейерный кэш шейдеров.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Ошибка при удалении переносного кэша шейдеров</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Переносной кэш шейдеров успешно удален.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Ошибка при удалении папки переносного кэша шейдеров.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Ошибка при удалении пользовательской настройки</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Пользовательская настройка для этой игры не существует.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Пользовательская настройка игры успешно удалена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Не удалось удалить пользовательскую настройку игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Не удалось извлечь RomFS!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Произошла ошибка при копировании файлов RomFS или пользователь отменил операцию.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Полный</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Скелет</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Выберите режим дампа RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Пожалуйста, выберите, как вы хотите выполнить дамп RomFS. &lt;br&gt;Полный скопирует все файлы в новую папку, в то время как &lt;br&gt;скелет создаст только структуру папок.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>В %1 недостаточно свободного места для извлечения RomFS. Пожалуйста, освободите место или выберите другую папку для дампа в Эмуляция &gt; Настройка &gt; Система &gt; Файловая система &gt; Корень дампа</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Извлечение RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Извлечение RomFS прошло успешно!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Операция выполнена.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Создать ярлык</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Это создаст ярлык для текущего AppImage. Он может не работать после обновлений. Продолжить?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Не удается создать ярлык на рабочем столе. Путь &quot;%1&quot; не существует.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Невозможно создать ярлык в меню приложений. Путь &quot;%1&quot; не существует и не может быть создан.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Создать иконку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Невозможно создать файл иконки. Путь &quot;%1&quot; не существует и не может быть создан.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Запустить %1 с помощью эмулятора yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Не удалось создать ярлык в %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Успешно создан ярлык в %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Ошибка открытия %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Выбрать папку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Свойства</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Не удалось загрузить свойства игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Исполняемый файл Switch (%1);;Все файлы (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Загрузить файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Открыть папку извлечённого ROM&apos;а</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Выбрана недопустимая папка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Папка, которую вы выбрали, не содержит файла &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Устанавливаемый файл Switch (*.nca, *.nsp, *.xci);;Архив контента Nintendo (*.nca);;Пакет подачи Nintendo (*.nsp);;Образ картриджа NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Установить файлы</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>Остался %n файл</numerusform><numerusform>Осталось %n файл(ов)</numerusform><numerusform>Осталось %n файл(ов)</numerusform><numerusform>Осталось %n файл(ов)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Установка файла &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Результаты установки</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Чтобы избежать возможных конфликтов, мы не рекомендуем пользователям устанавливать игры в NAND.
Пожалуйста, используйте эту функцию только для установки обновлений и DLC.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n файл был недавно установлен
@@ -5189,7 +5304,7 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n файл был перезаписан
@@ -5199,7 +5314,7 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n файл не удалось установить
@@ -5209,388 +5324,312 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Системное приложение</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Системный архив</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Обновление системного приложения</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Пакет прошивки (Тип А)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Пакет прошивки (Тип Б)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Игра</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Обновление игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC игры</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Дельта-титул</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Выберите тип установки NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Пожалуйста, выберите тип приложения, который вы хотите установить для этого NCA:
(В большинстве случаев, подходит стандартный выбор «Игра».)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Ошибка установки</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Тип приложения, который вы выбрали для NCA, недействителен.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Файл не найден</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Файл &quot;%1&quot; не найден</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>ОК</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Не удовлетворены системные требования</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Ваша система не соответствует рекомендуемым системным требованиям. Отчеты о совместимости были отключены.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Отсутствует аккаунт yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Чтобы отправить отчет о совместимости игры, необходимо привязать свою учетную запись yuzu.&lt;br&gt;&lt;br/&gt;Чтобы привязать свою учетную запись yuzu, перейдите в раздел Эмуляция &amp;gt; Параметры &amp;gt; Сеть.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Ошибка при открытии URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Не удалось открыть URL: &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Запись TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Перезаписать файл игрока 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Обнаружена недопустимая конфигурация</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Портативный контроллер не может быть использован в режиме док-станции. Будет выбран контроллер Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Текущий amiibo был убран</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Ошибка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Текущая игра не ищет amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Файл Amiibo (%1);; Все Файлы (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Загрузить Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Ошибка загрузки данных Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Выбранный файл не является допустимым amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Выбранный файл уже используется</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Произошла неизвестная ошибка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Сделать скриншот</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Изображение PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Состояние TAS: Выполняется %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Состояние TAS: Записывается %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Состояние TAS: Простой %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Состояние TAS: Неверное</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>[&amp;S] Остановка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>[&amp;S] Начать</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>[&amp;E] Закончить запись</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>[&amp;E] Запись</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Постройка: %n шейдер</numerusform><numerusform>Постройка: %n шейдер(ов)</numerusform><numerusform>Постройка: %n шейдер(ов)</numerusform><numerusform>Постройка: %n шейдер(ов)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Масштаб: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Скорость: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Скорость: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Игра: %1 FPS (Неограниченно)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Игра: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Кадр: %1 мс</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>ГП НОРМАЛЬНО</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>ГП ВЫСОКО</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>ГП ЭКСТРИМ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>ГП ОШИБКА</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>В ДОК-СТАНЦИИ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>ПОРТАТИВНЫЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>БЛИЖАЙШИЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>БИЛИНЕЙНЫЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>БИКУБИЧЕСКИЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>ГАУСС</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>БЕЗ СГЛАЖИВАНИЯ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>ГРОМКОСТЬ: ЗАГЛУШЕНА</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>ГРОМКОСТЬ: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Подтвердите перерасчет ключа</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5607,37 +5646,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
Это удалит ваши автоматически сгенерированные файлы ключей и повторно запустит модуль расчета ключей.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Отсутствуют предохранители</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Отсутствует BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Отсутствует BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- Отсутствует PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Компоненты расчета отсутствуют</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Ключи шифрования отсутствуют. &lt;br&gt;Пожалуйста, следуйте &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;краткому руководству пользователя yuzu&lt;/a&gt;, чтобы получить все ваши ключи, прошивку и игры.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5646,49 +5685,49 @@ on your system&apos;s performance.</source>
от производительности вашей системы.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Получение ключей</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>Не удалось расшифровать системный архив</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>Ключи шифрования не смогли расшифровать прошивку. &lt;br&gt;Пожалуйста, следуйте &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;краткому руководству пользователя yuzu&lt;/a&gt; чтобы получить все ваши ключи, прошивку и игры.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Выберите цель для дампа RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Пожалуйста, выберите, какой RomFS вы хотите сдампить.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Вы уверены, что хотите закрыть yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Вы уверены, что хотите остановить эмуляцию? Любой несохраненный прогресс будет потерян.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5696,48 +5735,143 @@ Would you like to bypass this and exit anyway?</source>
Хотите ли вы обойти это и выйти в любом случае?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Никакой</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>Ближайший</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Билинейный</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Бикубический</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Гаусс</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>В док-станции</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Портативный</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Нормальная</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Высокая</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Экстрим</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Null</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL не доступен!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Общие контексты OpenGL не поддерживаются.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu не был скомпилирован с поддержкой OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Ошибка при инициализации OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Ваш ГП может не поддерживать OpenGL, или у вас установлен устаревший графический драйвер.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Ошибка при инициализации OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Ваш ГП может не поддерживать OpenGL 4.6, или у вас установлен устаревший графический драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Ваш ГП может не поддерживать одно или несколько требуемых расширений OpenGL. Пожалуйста, убедитесь в том, что у вас установлен последний графический драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Неподдерживаемые расширения:&lt;br&gt;%2</translation>
</message>
@@ -5797,7 +5931,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Убрать хранилище Cache</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6091,138 +6225,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Включение/отключение звука</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Основное окно</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Уменьшить громкость звука</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Повысить громкость звука</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Сделать скриншот</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Изменить адаптирующий фильтр</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Изменить режим консоли</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Изменить точность ГП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Продолжение/Пауза эмуляции</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Выйти из полноэкранного режима</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Выйти из yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Полный экран</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Загрузить файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Загрузить/удалить Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Перезапустить эмуляцию</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Остановить эмуляцию</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Запись TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Сброс TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Старт/Стоп TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Переключить панель поиска</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Переключить ограничение частоты кадров</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Переключить панорамирование мыши</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Переключить панель состояния</translation>
</message>
@@ -6965,30 +7099,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[не задано]</translation>
</message>
@@ -6999,14 +7133,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Ось %1%2</translation>
</message>
@@ -7017,320 +7151,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[неизвестно]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Влево</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Вправо</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Вниз</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Вверх</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Круг</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Крестик</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Квадрат</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Треугольник</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[не определено]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[недопустимо]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Крест. %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Ось %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Ось %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Движение %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Кнопка %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[не используется]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Левый стик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Правый стик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Плюс</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Минус</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Захват</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Сенсор</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Колёсико</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Назад</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Вперёд</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Задача</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Дополнительная</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Крест. %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3Ось %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Кнопка %4</translation>
</message>
diff --git a/dist/languages/sv.ts b/dist/languages/sv.ts
index 7aa5f082e..245a1f764 100644
--- a/dist/languages/sv.ts
+++ b/dist/languages/sv.ts
@@ -1114,78 +1114,78 @@ avgjord kod.&lt;/div&gt;
<translation>yuzu Konfigurering</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Ljud</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Debug</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Filsystem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Allmänt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Avancerade grafikinställningar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Snabbknappar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Nätverk</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Spellista</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Webb</translation>
</message>
@@ -1379,17 +1379,22 @@ avgjord kod.&lt;/div&gt;
<translation>Göm mus när inaktiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Återställ Alla Inställningar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation type="unfinished"/>
</message>
@@ -1677,43 +1682,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Bakgrundsfärg:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1837,37 +1842,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotropisk filtrering:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Standard</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2250,7 +2275,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Konfigurera</translation>
</message>
@@ -2317,22 +2342,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Rörelse / Touch</translation>
</message>
@@ -2444,7 +2454,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Vänster Spak</translation>
</message>
@@ -2538,14 +2548,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2564,7 +2574,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Pluss</translation>
</message>
@@ -2577,15 +2587,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2642,246 +2652,256 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Höger Spak</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Konfigurera</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Rensa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[ej angett]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Dödzon: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Modifieringsräckvidd: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Prokontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Dubbla Joycons</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Vänster Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Höger Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Handhållen</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube-kontroll</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES-kontroll</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES-kontroll</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64-kontroll</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[väntar]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Ny profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation type="unfinished"/>
</message>
@@ -3061,6 +3081,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Aktivera</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Standard</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3136,47 +3231,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Utvecklare</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Tillägg</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Allmänt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>System</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Avancerade Grafikinställningar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Ljud</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>egenskaper</translation>
</message>
@@ -3378,7 +3473,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3415,7 +3510,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Aktivera</translation>
</message>
@@ -3482,12 +3577,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[väntar]</translation>
</message>
@@ -4597,957 +4697,896 @@ Dra punkter för att ändra position, eller dubbelklicka tabellceller för att r
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonym data skickas &lt;/a&gt;För att förbättra yuzu. &lt;br/&gt;&lt;br/&gt;Vill du dela med dig av din användarstatistik med oss?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Felaktig Vulkaninstallation Upptäckt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Laddar WebApplet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Avaktivera Webbappletten</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Mängden shaders som just nu byggs</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Nuvarande emuleringshastighet. Värden över eller under 100% indikerar på att emulationen körs snabbare eller långsammare än en Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Hur många bilder per sekund som spelet just nu visar. Detta varierar från spel till spel och scen till scen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Tid det tar att emulera en Switch bild, utan att räkna med framelimiting eller v-sync. För emulering på full hastighet så ska det vara som mest 16.67 ms. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Emulerad datormus är aktiverad</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Paus</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Varning Föråldrat Spelformat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Du använder det dekonstruerade ROM-formatet för det här spelet. Det är ett föråldrat format som har överträffats av andra som NCA, NAX, XCI eller NSP. Dekonstruerade ROM-kataloger saknar ikoner, metadata och uppdatering.&lt;br&gt;&lt;br&gt;För en förklaring av de olika format som yuzu stöder, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;kolla in vår wiki&lt;/a&gt;. Det här meddelandet visas inte igen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Fel vid laddning av ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>ROM-formatet stöds inte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Ett fel inträffade vid initiering av videokärnan.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Ett okänt fel har uppstått. Se loggen för mer information.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Spardata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod-data</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Fel Öppnar %1 Mappen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Mappen finns inte!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Fel Under Öppning Av Överförbar Shadercache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Ta bort katalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Framgångsrikt borttagen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Tog bort det installerade basspelet framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Basspelet är inte installerat i NAND och kan inte tas bort.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Tog bort den installerade uppdateringen framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Det finns ingen uppdatering installerad för denna titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Det finns inga DLC installerade för denna titel.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Tog framgångsrikt bort den %1 installerade DLCn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Ta Bort Anpassad Spelkonfiguration?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Radera fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Fel När Överförbar Shader Cache Raderades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>En shader cache för denna titel existerar inte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Raderade den överförbara shadercachen framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Misslyckades att ta bort den överförbara shadercache</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Fel När Anpassad Konfiguration Raderades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>En anpassad konfiguration för denna titel existerar inte.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Tog bort den anpassade spelkonfigurationen framgångsrikt.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Misslyckades att ta bort den anpassade spelkonfigurationen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS Extraktion Misslyckades!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Det uppstod ett fel vid kopiering av RomFS filer eller användaren avbröt operationen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Full</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Skelett</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Välj RomFS Dump-Läge</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Välj hur du vill att RomFS ska dumpas. &lt;br&gt;Full kommer att kopiera alla filer i den nya katalogen medan &lt;br&gt;skelett bara skapar katalogstrukturen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Extraherar RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Avbryt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Extraktion Lyckades!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Operationen var lyckad.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Fel under öppning av %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Välj Katalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Egenskaper</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Spelegenskaperna kunde inte laddas.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Körbar (%1);;Alla Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Ladda Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Öppna Extraherad ROM-Katalog</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Ogiltig Katalog Vald</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Katalogen du har valt innehåller inte en &apos;main&apos;-fil.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Installerbar Switch-fil (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Installera filer</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Installerar Fil &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Installera resultat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Systemapplikation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Systemarkiv</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Systemapplikationsuppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Firmwarepaket (Typ A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Firmwarepaket (Typ B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Spel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Speluppdatering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Spel DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta Titel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Välj NCA-Installationsläge...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Välj vilken typ av titel du vill installera som:
(I de flesta fallen, standard &apos;Spel&apos; är bra.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Misslyckades med Installationen</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Den titeltyp du valt för NCA är ogiltig.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Filen hittades inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Filen &quot;%1&quot; hittades inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation> Hårdvarukraven uppfylls ej</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>yuzu Konto hittades inte</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>För att skicka ett spelkompatibilitetstest, du måste länka ditt yuzu-konto.&lt;br&gt;&lt;br/&gt;För att länka ditt yuzu-konto, gå till Emulering &amp;gt, Konfigurering &amp;gt, Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Fel när URL öppnades</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Oförmögen att öppna URL:en &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS Inspelning</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Överskriv spelare 1:s fil?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Ogiltig konfiguration upptäckt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Den aktuella amiibon har avlägsnats</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Fel</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Det aktuella spelet letar ej efter amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo Fil (%1);; Alla Filer (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Ladda Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Fel vid laddning av Amiibodata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Den valda filen är inte en giltig amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Den valda filen är redan använd</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Ett okänt fel har inträffat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Skärmdump</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG Bild (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAStillstånd: pågående %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAStillstånd: spelar in %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAStillstånd: inaktiv %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAStillstånd: ogiltigt</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Start</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Hastighet: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Hastighet: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Spel: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Ruta: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Bekräfta Nyckel Rederivering</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5564,37 +5603,37 @@ och eventuellt göra säkerhetskopior.
Detta raderar dina autogenererade nyckelfiler och kör nyckelderivationsmodulen.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Saknade säkringar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Saknar BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Saknar BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- Saknar PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Deriveringsdelar saknas</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5603,49 +5642,49 @@ Detta kan ta upp till en minut beroende
på systemets prestanda.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Härleda Nycklar</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Välj RomFS Dumpa Mål</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Välj vilken RomFS du vill dumpa.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Är du säker på att du vill stänga yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Är du säker på att du vill stoppa emuleringen? Du kommer att förlora osparade framsteg.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5653,48 +5692,143 @@ Would you like to bypass this and exit anyway?</source>
Vill du strunta i detta och avsluta ändå?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Ingen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Dockad</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Handheld</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL inte tillgängligt!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu har inte komilerats med OpenGL support.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Fel under initialisering av OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -6047,138 +6181,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Skärmdump</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Fullskärm</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Ladda Fil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6912,30 +7046,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[inte inställd]</translation>
</message>
@@ -6946,14 +7080,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Axel %1%2</translation>
</message>
@@ -6964,320 +7098,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[okänd]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Vänster</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Höger</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Ner</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Upp</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Cirkel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Kors</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Fyrkant</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Triangel</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Dela</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Val</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[odefinerad]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[felaktig]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hatt %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Axel %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Axel %3,%4%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Rörelse %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Knapp %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[oanvänd]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Pluss</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Minus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Hem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Fånga</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Touch</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Hjul</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Bakåt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Framåt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Åtgärd</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Extra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/tr_TR.ts b/dist/languages/tr_TR.ts
index 8a1ebdc7e..c98e78ddb 100644
--- a/dist/languages/tr_TR.ts
+++ b/dist/languages/tr_TR.ts
@@ -1130,78 +1130,78 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>yuzu Yapılandırması</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Ses</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Hata Ayıklama</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Dosya sistemi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Genel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Grafikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Gelişmiş Grafik Ayarları</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Kısayollar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Kontroller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Profiller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Ağ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Oyun Listesi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1395,17 +1395,22 @@ Bu seçenek belleğe yazma/okuma işlemlerindeki güvenlik kontrolünü kaldıra
<translation>Hareketsizlik durumunda imleci gizle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Tüm Ayarları Sıfırla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Bu seçenek tüm genel ve oyuna özgü ayarları silecektir. Oyun dizinleri, profiller ve giriş profilleri silinmeyecektir. Devam etmek istiyor musunuz?</translation>
</message>
@@ -1693,43 +1698,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Arkaplan Rengi:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaderları, Yalnızca NVIDIA için)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Deneysel, Yalnızca Mesa için)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1853,37 +1858,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Anisotropic Filtering:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Otomatik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Varsayılan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2266,7 +2291,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Yapılandır</translation>
</message>
@@ -2333,22 +2358,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Mouse ile kaydırmayı etkinleştir</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Fare hassasiyeti </translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Hareket / Dokunmatik</translation>
</message>
@@ -2460,7 +2470,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Sol Analog</translation>
</message>
@@ -2554,14 +2564,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2580,7 +2590,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Artı</translation>
</message>
@@ -2593,15 +2603,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2658,247 +2668,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Sağ Analog</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Yapılandır</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Temizle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[belirlenmedi]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Tuşları ters çevir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Tuşu Aç/Kapa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Turbo tuşu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Ekseni ters çevir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Alt sınır ayarla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>%0 ve %100 arasında bir değer seçin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Ekseni aç/kapa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Gyro alt sınırı ayarla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Analog Çubuğu Ayarla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Tamama bastıktan sonra, joystikinizi önce yatay sonra dikey olarak hareket ettirin.
Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak hareket ettirin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Ekseni merkezle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Ölü Bölge: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Düzenleyici Aralığı: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>İkili Joyconlar</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Sol Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Sağ Joycon</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Handheld</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64 Kontrolcüsü</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Başlat / Duraklat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Kontrol Çubuğu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Çubuğu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Salla!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[bekleniyor]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Yeni Profil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Bir profil ismi girin:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Kontrol Profili Oluştur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Girilen profil ismi geçerli değil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili oluşturulamadı </translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Kontrol Profilini Kaldır</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili kaldırılamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Kontrol Profilini Yükle</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili yüklenemedi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Kontrol Profilini Kaydet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>&quot;%1&quot; kontrol profili kaydedilemedi</translation>
</message>
@@ -3078,6 +3098,81 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Aç</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Varsayılan</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3153,47 +3248,47 @@ Eksenleri ters çevirmek için, önce joystickinizi dikey sonra yatay olarak har
<translation>Geliştirici</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Eklentiler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Genel</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Sistem</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Grafikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Gelişmiş Grafikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Ses</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Kontrol Profilleri</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Özellikler</translation>
</message>
@@ -3396,8 +3491,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Eğer bu kontrolcüyü kullanmak istiyorsanız oyunun doğru düzgün kontrolcüyü algılaması için oyunu açmadan önce oyuncu 1&apos;i sağ kontrolcü ve oyuncu 2&apos;yi çift joycon olarak ayarlayın.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3433,7 +3528,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Aç</translation>
</message>
@@ -3500,12 +3595,17 @@ UUID: %2</translation>
<translation>Atanmış cihaza ring takılı değil</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Beklenmeyen sürücü sonucu %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[bekleniyor]</translation>
</message>
@@ -4615,560 +4715,575 @@ Noktanın konumunu değiştirmek için sürükleyin ya da sayıların üstüne
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Yuzuyu geliştirmeye yardımcı olmak için &lt;/a&gt; anonim veri toplandı. &lt;br/&gt;&lt;br/&gt;Kullanım verinizi bizimle paylaşmak ister misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Telemetri</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Bozuk Vulkan Kurulumu Algılandı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Açılışta Vulkan başlatılırken hata. Hata yardımını görüntülemek için &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;buraya tıklayın&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Web Uygulaması Yükleniyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Web Uygulamasını Devre Dışı Bırak</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Web uygulamasını kapatmak bilinmeyen hatalara neden olabileceğinden dolayı sadece Super Mario 3D All-Stars için kapatılması önerilir. Web uygulamasını kapatmak istediğinize emin misiniz?
(Hata ayıklama ayarlarından tekrar açılabilir)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Şu anda derlenen shader miktarı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Geçerli seçili çözünürlük ölçekleme çarpanı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Geçerli emülasyon hızı. %100&apos;den yüksek veya düşük değerler emülasyonun bir Switch&apos;den daha hızlı veya daha yavaş çalıştığını gösterir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Oyunun şuanda saniye başına kaç kare gösterdiği. Bu oyundan oyuna ve sahneden sahneye değişiklik gösterir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Bir Switch karesini emüle etmekte geçen zaman, karelimitleme ve v-sync hariç. Tam hız emülasyon için bu en çok 16,67 ms olmalı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>&amp;Son Dosyaları Temizle</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>&amp;Devam Et</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Duraklat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu şu anda bir oyun çalıştırıyor</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Uyarı, Eski Oyun Formatı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bu oyun için dekonstrükte ROM formatı kullanıyorsunuz, bu fromatın yerine NCA, NAX, XCI ve NSP formatları kullanılmaktadır. Dekonstrükte ROM formatları ikon, üst veri ve güncelleme desteği içermemektedir.&lt;br&gt;&lt;br&gt;Yuzu&apos;nun desteklediği çeşitli Switch formatları için&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;Wiki&apos;yi ziyaret edin&lt;/a&gt;. Bu mesaj yeniden gösterilmeyecektir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>ROM yüklenirken hata oluştu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Bu ROM biçimi desteklenmiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Video çekirdeğini başlatılırken bir hata oluştu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu video çekirdeğini çalıştırırken bir hatayla karşılaştı. Bu sorun genellikle eski GPU sürücüleri sebebiyle ortaya çıkar. Daha fazla detay için lütfen log dosyasına bakın. Log dosyasını incelemeye dair daha fazla bilgi için lütfen bu sayfaya ulaşın: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Log dosyası nasıl yüklenir&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>ROM yüklenirken hata oluştu! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Lütfen dosyalarınızı yeniden dump etmek için&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu hızlı başlangıç kılavuzu&apos;nu&lt;/a&gt; takip edin.&lt;br&gt; Yardım için yuzu wiki&lt;/a&gt;veya yuzu Discord&apos;una&lt;/a&gt; bakabilirsiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Bilinmeyen bir hata oluştu. Lütfen daha fazla detay için kütüğe göz atınız.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Yazılım kapatılıyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Kayıt Verisi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod Verisi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>%1 klasörü açılırken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Klasör mevcut değil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Transfer Edilebilir Shader Cache&apos;ini Açarken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Bu oyun için shader cache konumu oluşturulamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>İçerik Kaldırma Hatası</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Güncelleme Kaldırma hatası</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>DLC Kaldırma Hatası</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Yüklenmiş Oyun İçeriğini Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Yüklenmiş Oyun Güncellemesini Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Yüklenmiş DLC&apos;yi Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Girdiyi Kaldır</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Başarıyla Kaldırıldı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Yüklenmiş oyun başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Asıl oyun NAND&apos;de kurulu değil ve kaldırılamaz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Yüklenmiş güncelleme başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Bu oyun için yüklenmiş bir güncelleme yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Bu oyun için yüklenmiş bir DLC yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>%1 yüklenmiş DLC başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>OpenGL Transfer Edilebilir Shader Cache&apos;ini Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Vulkan Transfer Edilebilir Shader Cache&apos;ini Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Tüm Transfer Edilebilir Shader Cache&apos;leri Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Oyuna Özel Yapılandırmayı Kaldırmak İstediğinize Emin Misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Dosyayı Sil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Transfer Edilebilir Shader Cache Kaldırılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Bu oyun için oluşturulmuş bir shader cache yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Transfer edilebilir shader cache başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Transfer edilebilir shader cache kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Vulkan Pipeline Önbelleği Kaldırılırken Hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Sürücü pipeline önbelleği kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Transfer Edilebilir Shader Cache&apos;ler Kaldırılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Transfer edilebilir shader cacheler başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Transfer edilebilir shader cache konumu kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Oyuna Özel Yapılandırma Kaldırılırken Bir Hata Oluştu.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Bu oyun için bir özel yapılandırma yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Oyuna özel yapılandırma başarıyla kaldırıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Oyuna özel yapılandırma kaldırılamadı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS Çıkartımı Başarısız!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>RomFS dosyaları kopyalanırken bir hata oluştu veya kullanıcı işlemi iptal etti.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Full</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Çerçeve</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>RomFS Dump Modunu Seçiniz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Lütfen RomFS&apos;in nasıl dump edilmesini istediğinizi seçin.&lt;br&gt;&quot;Full&quot; tüm dosyaları yeni bir klasöre kopyalarken &lt;br&gt;&quot;skeleton&quot; sadece klasör yapısını oluşturur.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 konumunda RomFS çıkarmaya yetecek alan yok. Lütfen yer açın ya da Emülasyon &gt; Yapılandırma &gt; Sistem &gt; Dosya Sistemi &gt; Dump konumu kısmından farklı bir çıktı konumu belirleyin.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>RomFS çıkartılıyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>İptal</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS Çıkartımı Başarılı!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>İşlem başarıyla tamamlandı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Kısayol Oluştur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Bu seçenek, şu anki AppImage dosyasının kısayolunu oluşturacak. Uygulama güncellenirse kısayol çalışmayabilir. Devam edilsin mi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Masaüstünde kısayol oluşturulamadı. &quot;%1&quot; dizini yok.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Uygulamalar menüsünde kısayol oluşturulamadı. &quot;%1&quot; dizini yok ve oluşturulamıyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Simge Oluştur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Simge dosyası oluşturulamadı. &quot;%1&quot; dizini yok ve oluşturulamıyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>yuzu Emülatörü başlatılırken %1 başlatılsın</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>%1 dizininde kısayol oluşturulamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>%1 dizinine kısayol oluşturuldu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>%1 Açılırken Bir Hata Oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Klasör Seç</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Özellikler</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Oyun özellikleri yüklenemedi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch Çalıştırılabilir Dosyası (%1);;Tüm Dosyalar (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Dosya Aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Çıkartılmış ROM klasörünü aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Geçersiz Klasör Seçildi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Seçtiğiniz klasör bir &quot;main&quot; dosyası içermiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Yüklenilebilir Switch Dosyası (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submissions Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Dosya Kur</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>%n dosya kaldı</numerusform><numerusform>%n dosya kaldı</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>&quot;%1&quot; dosyası kuruluyor...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Kurulum Sonuçları</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Olası çakışmaları önlemek için oyunları NAND&apos;e yüklememenizi tavsiye ediyoruz.
Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n dosya güncel olarak yüklendi
@@ -5176,7 +5291,7 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n dosyanın üstüne yazıldı
@@ -5184,7 +5299,7 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n dosya yüklenemedi
@@ -5192,388 +5307,312 @@ Lütfen bu özelliği sadece güncelleme ve DLC yüklemek için kullanın.</tran
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Sistem Uygulaması</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Sistem Arşivi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Sistem Uygulama Güncellemesi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Yazılım Paketi (Tür A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Yazılım Paketi (Tür B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Oyun</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Oyun Güncellemesi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Oyun DLC&apos;si</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta Başlık</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>NCA Kurulum Tipi Seçin...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Lütfen bu NCA dosyası için belirlemek istediğiniz başlık türünü seçiniz:
(Çoğu durumda, varsayılan olan &apos;Oyun&apos; kullanılabilir.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Kurulum Başarısız Oldu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>NCA için seçtiğiniz başlık türü geçersiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Dosya Bulunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Dosya &quot;%1&quot; Bulunamadı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>Tamam</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Donanım gereksinimleri karşılanmıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Sisteminiz, önerilen donanım gereksinimlerini karşılamıyor. Uyumluluk raporlayıcı kapatıldı.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Kayıp yuzu Hesabı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Oyun uyumluluk test çalışması göndermek için öncelikle yuzu hesabınla giriş yapmanız gerekiyor.&lt;br&gt;&lt;br/&gt;Yuzu hesabınızla giriş yapmak için, Emülasyon &amp;gt; Yapılandırma &amp;gt; Web&apos;e gidiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>URL açılırken bir hata oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>URL &quot;%1&quot; açılamıyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS kayıtta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Oyuncu 1&apos;in dosyasının üstüne yazılsın mı?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Geçersiz yapılandırma tespit edildi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Handheld kontrolcü dock modunda kullanılamaz. Pro kontrolcü seçilecek.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Amiibo kaldırıldı</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Aktif oyun amiibo beklemiyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo Dosyası (%1);; Tüm Dosyalar (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Amiibo Yükle</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Amiibo verisi yüklenirken hata</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Seçtiğiniz dosya geçerli bir amiibo değil</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Seçtiğiniz dosya hali hazırda kullanılıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Bilinmeyen bir hata oluştu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Ekran Görüntüsü Al</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG görüntüsü (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS durumu: %1%2 çalışıyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS durumu: %1 kaydediliyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS durumu: %1%2 boşta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS durumu: Geçersiz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;Çalıştırmayı durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Başlat</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>K&amp;aydetmeyi Durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>K&amp;aydet</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Oluşturuluyor: %n shader</numerusform><numerusform>Oluşturuluyor: %n shader</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Ölçek: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Hız %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Hız: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Oyun: %1 FPS (Sınırsız)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Oyun: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Kare: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU YÜKSEK</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EKSTREM</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU HATASI</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>TAKILI MOD</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>TAŞIMA MODU</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>YOK</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>EN YAKIN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>BILINEAR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>BICUBIC</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>GAUSYEN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>AA YOK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>SES: KAPALI</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>SES: %%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Anahtar Yeniden Türetimini Onayla</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5590,37 +5629,37 @@ ve opsiyonel olarak yedekler alın.
Bu sizin otomatik oluşturulmuş anahtar dosyalarınızı silecek ve anahtar türetme modülünü tekrar çalıştıracak.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Anahtarlar Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- BOOT0 Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- BCPKG2-1-Normal-Main Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- PRODINFO Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Türeten Bileşenleri Kayıp</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Şifreleme anahtarları eksik. &lt;br&gt;Lütfen takip edin&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu hızlı başlangıç kılavuzunu&lt;/a&gt;tüm anahtarlarınızı, aygıt yazılımınızı ve oyunlarınızı almada.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5629,49 +5668,49 @@ Bu sistem performansınıza bağlı olarak
bir dakika kadar zaman alabilir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Anahtarlar Türetiliyor</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>RomFS Dump Hedefini Seçiniz</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Lütfen dump etmek istediğiniz RomFS&apos;i seçiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>yuzu&apos;yu kapatmak istediğinizden emin misiniz?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Emülasyonu durdurmak istediğinizden emin misiniz? Kaydedilmemiş veriler kaybolur.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5679,48 +5718,143 @@ Would you like to bypass this and exit anyway?</source>
Görmezden gelip kapatmak ister misiniz?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Yok</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubic</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Gausyen</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Dock Modu Aktif</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Taşınabilir</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL kullanıma uygun değil!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>OpenGL paylaşılan bağlam desteklenmiyor.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>Yuzu OpenGL desteklememektedir.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>OpenGl başlatılırken bir hata oluştu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>GPU&apos;nuz OpenGL desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>OpenGl 4.6 başlatılırken bir hata oluştu!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>GPU&apos;nuz OpenGL 4.6&apos;yı desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>GPU&apos;nuz gereken bir yada daha fazla OpenGL eklentisini desteklemiyor Lütfen güncel bir grafik sürücüsüne sahip olduğunuzdan emin olun.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt; Desteklenmeyen Eklentiler:&lt;br&gt;%2</translation>
</message>
@@ -6073,138 +6207,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Sesi Sustur/Aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Ana Pencere</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Ses Kapa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Ses Aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Ekran Görüntüsü Al</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Uyarlanan Filtreyi Değiştir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Takılı Modu Kullan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>GPU Doğruluğunu Değiştir</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Sürdür/Emülasyonu duraklat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Tam Ekrandan Çık</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Yuzu&apos;dan çık</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Tam Ekran</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Dosya Aç</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Amiibo Yükle/Kaldır</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Emülasyonu Yeniden Başlat</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Emülasyonu Durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>TAS Kaydet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>TAS Sıfırla</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS Başlat/Durdur</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Filtre Çubuğunu Aç/Kapa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>FPS Limitini Aç/Kapa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Mouse ile Kaydırmayı Aç/Kapa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Durum Çubuğunu Aç/Kapa</translation>
</message>
@@ -6947,30 +7081,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[belirlenmedi]</translation>
</message>
@@ -6981,14 +7115,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Eksen %1%2</translation>
</message>
@@ -6999,320 +7133,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[bilinmeyen]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Sol</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Sağ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Aşağı</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Yukarı</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Yuvarlak</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Çarpı</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Kare</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Üçgen</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[belirsiz]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[geçersiz]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Eksen %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Eksen %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Hareket %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Tuş %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[kullanılmayan]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>L Çubuğu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>R Çubuğu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Artı</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Eksi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Kaydet</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Dokunmatik</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Fare Tekerleği</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Geri</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>İleri</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Görev</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Ekstra</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Hat %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Tuş %4</translation>
</message>
diff --git a/dist/languages/uk.ts b/dist/languages/uk.ts
index d82fc1e66..6c5762e8d 100644
--- a/dist/languages/uk.ts
+++ b/dist/languages/uk.ts
@@ -1137,78 +1137,78 @@ This would ban both their forum username and their IP address.</source>
<translation>Налаштування yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Аудіо</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>ЦП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Налагодження</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Файлова система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Загальні</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Графіка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>ГрафікаРозширені</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Гарячі клавіші</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Керування</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Профілі</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Мережа</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Список ігор</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Мережа</translation>
</message>
@@ -1402,17 +1402,22 @@ This would ban both their forum username and their IP address.</source>
<translation>Приховування миші при бездіяльності</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Скинути всі налаштування</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Це скине всі налаштування і видалить усі конфігурації під окремі ігри. При цьому не будуть видалені шляхи до ігор, профілів або профілів вводу. Продовжити?</translation>
</message>
@@ -1703,43 +1708,43 @@ Mailbox може мати меншу затримку, ніж FIFO, і не ма
<translation>Фоновий колір:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (асемблерні шейдери, лише для NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (Експериментально, лише для Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>Вимкнено</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>Верт. синхронізацію вимкнено</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>Рекомендовано</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>Увімкнено</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>Верт. синхронізація увімкнена</translation>
</message>
@@ -1864,37 +1869,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>Увімкнути обчислювальні конвеєри (тільки для Intel Vulkan)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Анізотропна фільтрація:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>Автоматично</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>За замовчуванням</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2277,7 +2302,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Налаштувати</translation>
</message>
@@ -2344,22 +2369,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>Використовувати випадкове Amiibo ID</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>Увімкнути панорамування миші</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Чутливість миші</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Рух і сенсор</translation>
</message>
@@ -2471,7 +2481,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Лівий міні-джойстик</translation>
</message>
@@ -2565,14 +2575,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2591,7 +2601,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Плюс</translation>
</message>
@@ -2604,15 +2614,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2669,247 +2679,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Правий міні-джойстик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Налаштувати</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Очистити</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[не задано]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>Інвертувати кнопку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>Переключити кнопку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>Турбо кнопка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>Інвертувати осі</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>Встановити поріг</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Оберіть значення між 0% і 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>Переключити осі</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>Встановити поріг гіроскопа</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>Калібрувати сенсор</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Задати аналоговий міні-джойстик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Після натискання на ОК, рухайте ваш міні-джойстик горизонтально, а потім вертикально.
Щоб інвертувати осі, спочатку рухайте ваш міні-джойстик вертикально, а потім горизонтально.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>Центрувати осі</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>Мертва зона: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>Діапазон модифікатора: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Контролер Pro</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Подвійні Joy-Con&apos;и</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Лівий Joy-Con</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Правий Joy-Con</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Портативний</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Контролер GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>Poke Ball Plus</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>Контролер NES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>Контролер SNES</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>Контролер N64</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Sega Genesis</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Старт / Пауза</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>Міні-джойстик керування</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Джойстик</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Потрусіть!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[очікування]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Новий профіль</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Введіть ім&apos;я профілю:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Створити профіль контролю</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Задане ім&apos;я профілю недійсне!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Не вдалося створити профіль контролю &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Видалити профіль контролю</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Не вдалося видалити профіль контролю &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Завантажити профіль контролю</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Не вдалося завантажити профіль контролю &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Зберегти профіль контролю</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Не вдалося зберегти профіль контролю &quot;%1&quot;</translation>
</message>
@@ -3089,6 +3109,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>Увімкнути</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>За замовчуванням</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3164,47 +3259,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>Розробник</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Доповнення</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Загальні</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Система</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>ЦП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Графіка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Розш. Графіка</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Аудіо</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>Профілі вводу</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Властивості</translation>
</message>
@@ -3407,8 +3502,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>Якщо ви хочете використовувати цей контролер, налаштуйте гравця 1 як правий контролер, а гравця 2 як подвійний Joy-Соп перед початком гри, щоб цей контролер був виявлений правильно.</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3444,7 +3539,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>Увімкнути</translation>
</message>
@@ -3511,12 +3606,17 @@ UUID: %2</translation>
<translation>До поточного пристрою не прикріплено кільце</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>Несподіваний результат драйвера %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[очікування]</translation>
</message>
@@ -3822,7 +3922,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="329"/>
<source>American English</source>
- <translation>Американська Англійська</translation>
+ <translation>Американська англійська</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="334"/>
@@ -3877,32 +3977,32 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="384"/>
<source>British English</source>
- <translation>Британська Англійська</translation>
+ <translation>Британська англійська</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="389"/>
<source>Canadian French</source>
- <translation>Канадська Французька</translation>
+ <translation>Канадська французька</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="394"/>
<source>Latin American Spanish</source>
- <translation>Латиноамериканська Іспанська</translation>
+ <translation>Латиноамериканська іспанська</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="399"/>
<source>Simplified Chinese</source>
- <translation>Спрощена Китайська</translation>
+ <translation>Спрощена китайська</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="404"/>
<source>Traditional Chinese (正體中文)</source>
- <translation>Традиційна Китайська (正體中文)</translation>
+ <translation>Традиційна китайська (正體中文)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="409"/>
<source>Brazilian Portuguese (português do Brasil)</source>
- <translation>Бразильська Португальська (português do Brasil)</translation>
+ <translation>Бразильська португальська (português do Brasil)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="417"/>
@@ -4626,560 +4726,575 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Анонімні дані збираються для того,&lt;/a&gt; щоб допомогти поліпшити роботу yuzu. &lt;br/&gt;&lt;br/&gt;Хотіли б ви ділитися даними про використання з нами?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Телеметрія</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>Виявлено пошкоджену інсталяцію Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Не вдалося виконати ініціалізацію Vulkan під час завантаження.&lt;br&gt;&lt;br&gt;Натисніть &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;тут для отримання інструкцій щодо усунення проблеми&lt;/a&gt;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>Завантаження веб-аплета...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>Вимкнути веб-аплет</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>Вимкнення веб-апплета може призвести до несподіваної поведінки, і його слід вимикати лише заради Super Mario 3D All-Stars. Ви впевнені, що хочете вимкнути веб-апплет?
(Його можна знову ввімкнути в налаштуваннях налагодження.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>Кількість створюваних шейдерів на цей момент</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>Поточний обраний множник масштабування роздільної здатності.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Поточна швидкість емуляції. Значення вище або нижче 100% вказують на те, що емуляція йде швидше або повільніше, ніж на Switch.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Кількість кадрів на секунду в цей момент. Значення буде змінюватися між іграми та сценами.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Час, який потрібен для емуляції 1 кадру Switch, не беручи до уваги обмеження FPS або вертикальну синхронізацію. Для емуляції в повній швидкості значення має бути не більше 16,67 мс.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>Увімкнути звук</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>Вимкнути звук</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>Скинути гучність</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>[&amp;C] Очистити нещодавні файли</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>Емульована мишка увімкнена</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>Введення реальної миші та панорамування мишею несумісні. Будь ласка, вимкніть емульовану мишу в розширених налаштуваннях введення, щоб дозволити панорамування мишею.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>[&amp;C] Продовжити</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>[&amp;P] Пауза</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>В yuzu запущено гру</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Попередження застарілий формат гри</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Для цієї гри ви використовуєте розархівований формат ROM&apos;а, який є застарілим і був замінений іншими, такими як NCA, NAX, XCI або NSP. У розархівованих каталогах ROM&apos;а відсутні іконки, метадані та підтримка оновлень. &lt;br&gt;&lt;br&gt;Для отримання інформації про різні формати Switch, підтримувані yuzu, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;перегляньте нашу вікі&lt;/a&gt;. Це повідомлення більше не буде відображатися.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Помилка під час завантаження ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Формат ROM&apos;а не підтримується.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Сталася помилка під час ініціалізації відеоядра.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu зіткнувся з помилкою під час запуску відеоядра. Зазвичай це спричинено застарілими драйверами ГП, включно з інтегрованими. Перевірте журнал для отримання більш детальної інформації. Додаткову інформацію про доступ до журналу дивіться на наступній сторінці: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;Як завантажити файл журналу&lt;/a&gt;. </translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>Помилка під час завантаження ROM&apos;а! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;Будь ласка, дотримуйтесь &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;короткого керівництва користувача yuzu&lt;/a&gt; щоб пере-дампити ваші файли&lt;br&gt;Ви можете звернутися до вікі yuzu&lt;/a&gt; або Discord yuzu&lt;/a&gt; для допомоги</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Сталася невідома помилка. Будь ласка, перевірте журнал для подробиць.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-бітний)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-бітний)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>Закриваємо програму...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>Збереження</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Дані модів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Помилка під час відкриття папки %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Папка не існує!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>Помилка під час відкриття переносного кешу шейдерів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>Не вдалося створити папку кешу шейдерів для цієї гри.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>Помилка під час видалення вмісту</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>Помилка під час видалення оновлень</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>Помилка під час видалення DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>Видалити встановлений вміст ігор?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>Видалити встановлені оновлення гри?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>Видалити встановлені DLC гри?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>Видалити запис</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>Успішно видалено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>Встановлену гру успішно видалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>Гру не встановлено в NAND і не може буде видалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>Встановлене оновлення успішно видалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>Для цієї гри не було встановлено оновлення.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>Для цієї гри не було встановлено DLC.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>Встановлений DLC %1 було успішно видалено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>Видалити переносний кеш шейдерів OpenGL?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>Видалити переносний кеш шейдерів Vulkan?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>Видалити весь переносний кеш шейдерів?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>Видалити користувацьке налаштування гри?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation type="unfinished"/>
+ <translation>Видалити кеш-сховище?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>Видалити файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>Помилка під час видалення переносного кешу шейдерів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>Кеш шейдерів для цієї гри не існує.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>Переносний кеш шейдерів успішно видалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>Не вдалося видалити переносний кеш шейдерів.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>Помилка під час видалення конвеєрного кешу Vulkan</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>Не вдалося видалити конвеєрний кеш шейдерів.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>Помилка під час видалення переносного кешу шейдерів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>Переносний кеш шейдерів успішно видалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>Помилка під час видалення папки переносного кешу шейдерів.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>Помилка під час видалення користувацького налаштування</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>Користувацьких налаштувань для цієї гри не існує.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>Користувацьке налаштування гри успішно видалено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>Не вдалося видалити користувацьке налаштування гри.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Не вдалося вилучити RomFS!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Сталася помилка під час копіювання файлів RomFS або користувач скасував операцію.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>Повний</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Скелет</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Виберіть режим дампа RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Будь ласка, виберіть, як ви хочете виконати дамп RomFS &lt;br&gt;Повний скопіює всі файли в нову папку, тоді як &lt;br&gt;скелет створить лише структуру папок.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>В %1 недостатньо вільного місця для вилучення RomFS. Будь ласка, звільніть місце або виберіть іншу папку для дампа в Емуляція &gt; Налаштування &gt; Система &gt; Файлова система &gt; Корінь дампа</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Вилучення RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Скасувати</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Вилучення RomFS пройшло успішно!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Операція завершилася успішно.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>Створити ярлик</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>Це створить ярлик для поточного AppImage. Він може не працювати після оновлень. Продовжити?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>Не вдається створити ярлик на робочому столі. Шлях &quot;%1&quot; не існує.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Неможливо створити ярлик у меню додатків. Шлях &quot;%1&quot; не існує і не може бути створений.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>Створити іконку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>Неможливо створити файл іконки. Шлях &quot;%1&quot; не існує і не може бути створений.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>Запустити %1 за допомогою емулятора yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>Не вдалося створити ярлик у %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>Успішно створено ярлик у %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>Помилка відкриття %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Обрати папку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Властивості</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Не вдалося завантажити властивості гри.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Виконуваний файл Switch (%1);;Усі файли (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Завантажити файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Відкрити папку вилученого ROM&apos;а</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Вибрано неприпустиму папку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Папка, яку ви вибрали, не містить файлу &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Встановлюваний файл Switch (*.nca, *.nsp, *.xci);;Архів контенту Nintendo (*.nca);;Пакет подачі Nintendo (*.nsp);;Образ картриджа NX (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>Встановити файли</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>Залишився %n файл</numerusform><numerusform>Залишилося %n файл(ів)</numerusform><numerusform>Залишилося %n файл(ів)</numerusform><numerusform>Залишилося %n файл(ів)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Встановлення файлу &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>Результати встановлення</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>Щоб уникнути можливих конфліктів, ми не рекомендуємо користувачам встановлювати ігри в NAND.
Будь ласка, використовуйте цю функцію тільки для встановлення оновлень і завантажуваного контенту.</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>%n файл було нещодавно встановлено
@@ -5189,7 +5304,7 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n файл було перезаписано
@@ -5199,7 +5314,7 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n файл не вдалося встановити
@@ -5209,388 +5324,312 @@ Please, only use this feature to install updates and DLC.</source>
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Системний додаток</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Системний архів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Оновлення системного додатку</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Пакет прошивки (Тип А)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Пакет прошивки (Тип Б)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Гра</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Оновлення гри</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>DLC до гри</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Дельта-титул</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Виберіть тип установки NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Будь ласка, виберіть тип додатку, який ви хочете встановити для цього NCA:
(У більшості випадків, підходить стандартний вибір &quot;Гра&quot;.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Помилка встановлення</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Тип додатку, який ви вибрали для NCA, недійсний.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Файл не знайдено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Файл &quot;%1&quot; не знайдено</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>ОК</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>Не задоволені системні вимоги</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>Ваша система не відповідає рекомендованим системним вимогам. Звіти про сумісність було вимкнено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Відсутній обліковий запис yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Щоб надіслати звіт про сумісність гри, необхідно прив&apos;язати свій обліковий запис yuzu. &lt;br&gt;&lt;br/&gt;Щоб прив&apos;язати свій обліковий запис yuzu, перейдіть у розділ Емуляція &amp;gt; Параметри &amp;gt; Мережа.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>Помилка під час відкриття URL</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>Не вдалося відкрити URL: &quot;%1&quot;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>Запис TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>Перезаписати файл гравця 1?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>Виявлено неприпустиму конфігурацію</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>Портативний контролер не може бути використаний у режимі док-станції. Буде обрано контролер Pro.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>Поточний amiibo було прибрано</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>Помилка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>Поточна гра не шукає amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Файл Amiibo (%1);; Всі Файли (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Завантажити Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Помилка під час завантаження даних Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>Обраний файл не є допустимим amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>Обраний файл уже використовується</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>Виникла невідома помилка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Зробити знімок екрану</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Зображення PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>Стан TAS: Виконується %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>Стан TAS: Записується %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>Стан TAS: Простий %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>Стан TAS: Неприпустимий</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>[&amp;S] Зупинка</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>[&amp;S] Почати</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>[&amp;E] Закінчити запис</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>[&amp;E] Запис</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>Побудова: %n шейдер</numerusform><numerusform>Побудова: %n шейдер(ів)</numerusform><numerusform>Побудова: %n шейдер(ів)</numerusform><numerusform>Побудова: %n шейдер(ів)</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>Масштаб: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Швидкість: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Швидкість: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>Гра: %1 FPS (Необмежено)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Гра: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Кадр: %1 мс</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>ГП НОРМАЛЬНО</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>ГП ВИСОКО</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>ГП ЕКСТРИМ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>ГП ПОМИЛКА</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>В ДОК-СТАНЦІЇ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>ПОРТАТИВНИЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>НАЙБЛИЖЧІЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>БІЛІНІЙНИЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>БІКУБІЧНИЙ</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>ГАУС</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>SCALEFORCE</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>БЕЗ ЗГЛАДЖУВАННЯ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>ГУЧНІСТЬ: ЗАГЛУШЕНА</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>ГУЧНІСТЬ: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Підтвердіть перерахунок ключа</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5607,37 +5646,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
Це видалить ваші автоматично згенеровані файли ключів і повторно запустить модуль розрахунку ключів.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>Відсутні запобіжники</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- Відсутній BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation>- Відсутній BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation> - Відсутній PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>Компоненти розрахунку відсутні</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>Ключі шифрування відсутні.&lt;br&gt;Будь ласка, дотримуйтесь &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;короткого керівництва користувача yuzu&lt;/a&gt;, щоб отримати всі ваші ключі, прошивку та ігри&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5646,49 +5685,49 @@ on your system&apos;s performance.</source>
від продуктивності вашої системи.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Отримання ключів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>Не вдалося розшифрувати системний архів</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>Ключі шифрування не змогли розшифрувати прошивку.&lt;br&gt;Будь ласка, дотримуйтесь &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;короткого керівництва користувача yuzu&lt;/a&gt; щоб отримати всі ваші ключі, прошивку та ігри.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Оберіть ціль для дампа RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Будь ласка, виберіть, який RomFS ви хочете здампити.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Ви впевнені, що хочете закрити yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Ви впевнені, що хочете зупинити емуляцію? Будь-який незбережений прогрес буде втрачено.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5696,48 +5735,143 @@ Would you like to bypass this and exit anyway?</source>
Чи хочете ви обійти це і вийти в будь-якому випадку?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Вимкнено</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>Найближчий</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Білінійне</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Бікубічне</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>Гауса</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>У док-станції</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Портативний</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Нормальна</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Висока</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Екстрим</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>Null</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL недоступний!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>Загальні контексти OpenGL не підтримуються.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu не було зібрано з підтримкою OpenGL.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Помилка під час ініціалізації OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>Ваш ГП може не підтримувати OpenGL, або у вас встановлено застарілий графічний драйвер.</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>Помилка під час ініціалізації OpenGL 4.6!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>Ваш ГП може не підтримувати OpenGL 4.6, або у вас встановлено застарілий графічний драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>Ваш ГП може не підтримувати одне або кілька необхідних розширень OpenGL. Будь ласка, переконайтеся в тому, що у вас встановлено останній графічний драйвер.&lt;br&gt;&lt;br&gt;Рендерер GL:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Розширення, що не підтримуються:&lt;br&gt;%2</translation>
</message>
@@ -5797,7 +5931,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation type="unfinished"/>
+ <translation>Видалити кеш-сховище</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -6091,138 +6225,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>Увімкнення/вимкнення звуку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>Основне вікно</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>Зменшити гучність звуку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>Підвищити гучність звуку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Зробити знімок екрану</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>Змінити адаптуючий фільтр</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>Змінити режим консолі</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>Змінити точність ГП</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>Продовження/Пауза емуляції</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>Вийти з повноекранного режиму</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>Вийти з yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Повний екран</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Завантажити файл</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>Завантажити/видалити Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>Перезапустити емуляцію</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>Зупинити емуляцію</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>Запис TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>Скидання TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>Старт/Стоп TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>Переключити панель пошуку</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>Переключити обмеження частоти кадрів</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>Переключити панорамування миші</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>Переключити панель стану</translation>
</message>
@@ -6965,30 +7099,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[не задано]</translation>
</message>
@@ -6999,14 +7133,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Ось %1%2</translation>
</message>
@@ -7017,320 +7151,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[невідомо]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Вліво</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Вправо</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Вниз</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Вгору</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Start</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>Кружечок</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>Хрестик</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>Квадратик</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Трикутничок</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>Share</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>Options</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[невизначено]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[неприпустимо]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Напр. %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2Ось %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2Ось %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2Рух %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2Кнопка %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[не використаний]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>Лівий стік</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>Правий стік</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Плюс</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Мінус</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>Захоплення</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Сенсор</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>Коліщатко</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>Назад</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>Вперед</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>Задача</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>Додаткова</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3Напр. %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3Вісь %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3Кнопка %4</translation>
</message>
diff --git a/dist/languages/vi.ts b/dist/languages/vi.ts
index 2829ef62a..a9674f644 100644
--- a/dist/languages/vi.ts
+++ b/dist/languages/vi.ts
@@ -1108,78 +1108,78 @@ This would ban both their forum username and their IP address.</source>
<translation>Thiết lập yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Âm thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Gỡ lỗi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Hệ thống tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Đồ hoạ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Đồ họa Nâng cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Phím tắt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Hồ sơ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Mạng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Danh sách trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1373,17 +1373,22 @@ This would ban both their forum username and their IP address.</source>
<translation>Ẩn con trỏ chuột khi không dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Đặt lại mọi tùy chỉnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Quá trình này sẽ thiết lập lại toàn bộ tùy chỉnh và gỡ hết mọi cài đặt cho từng game riêng lẻ. Quá trình này không xóa đường dẫn tới thư mục game, hồ sơ, hay hồ sơ của thiết lập phím. Tiếp tục?</translation>
</message>
@@ -1517,7 +1522,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="353"/>
<source>Force 16:10</source>
- <translation type="unfinished"/>
+ <translation>Dung 16:10</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="358"/>
@@ -1542,7 +1547,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="402"/>
<source>1X (720p/1080p)</source>
- <translation type="unfinished"/>
+ <translation>1X (720p/1080p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="407"/>
@@ -1592,27 +1597,27 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="476"/>
<source>Nearest Neighbor</source>
- <translation type="unfinished"/>
+ <translation>Nearest Neighbor</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="481"/>
<source>Bilinear</source>
- <translation type="unfinished"/>
+ <translation>Bilinear</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="486"/>
<source>Bicubic</source>
- <translation type="unfinished"/>
+ <translation>Bicubic</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="491"/>
<source>Gaussian</source>
- <translation type="unfinished"/>
+ <translation>ScaleForce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="496"/>
<source>ScaleForce</source>
- <translation type="unfinished"/>
+ <translation>ScaleForce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="501"/>
@@ -1627,12 +1632,12 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="540"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="545"/>
<source>SMAA</source>
- <translation type="unfinished"/>
+ <translation>SMAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="601"/>
@@ -1671,43 +1676,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Màu nền:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, Chỉ Cho NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1831,37 +1836,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Bộ lọc góc nghiêng:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Mặc định</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2244,7 +2269,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Thiết lập</translation>
</message>
@@ -2311,22 +2336,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Độ nhạy chuột</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Chuyển động / Cảm ứng</translation>
</message>
@@ -2438,7 +2448,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Cần trái</translation>
</message>
@@ -2532,14 +2542,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2558,7 +2568,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Cộng</translation>
</message>
@@ -2571,15 +2581,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2636,247 +2646,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Cần phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Thiết lập</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Bỏ trống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[không đặt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Chọn một giá trị giữa 0% và 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Thiết lập Cần Điều Khiển</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Sau khi bấm OK, di chuyển cần sang ngang, rồi sau đó sang dọc.
Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần sang dọc trước, rồi sang ngang.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Tay cầm Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joycon đôi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon Trái</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon Phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Cầm tay</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Tay cầm GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Bắt đầu / Tạm ngưng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Lắc!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[Chờ]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Hồ sơ mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Nhập tên hồ sơ:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Tạo Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Tên hồ sơ không hợp lệ!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Quá trình tạo hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Xóa Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Quá trình xóa hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Nạp Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Quá trình nạp hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Lưu Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Quá trình lưu hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
@@ -3056,6 +3076,81 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Mặc định</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3131,47 +3226,47 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Nhà Phát Hành</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Bổ Sung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Đồ hoạ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Đồ Họa Nâng Cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Âm thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
@@ -3373,7 +3468,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3410,7 +3505,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3477,12 +3572,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[Chờ]</translation>
</message>
@@ -3628,7 +3728,7 @@ UUID: %2</source>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="156"/>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="275"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Nhật Bản</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="161"/>
@@ -3743,32 +3843,32 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="280"/>
<source>USA</source>
- <translation type="unfinished"/>
+ <translation>Hoa Kỳ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="285"/>
<source>Europe</source>
- <translation type="unfinished"/>
+ <translation>Châu Âu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="290"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Châu Úc</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="295"/>
<source>China</source>
- <translation type="unfinished"/>
+ <translation>Trung Quốc</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="300"/>
<source>Korea</source>
- <translation type="unfinished"/>
+ <translation>Hàn Quốc</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="305"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Đài Loan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="313"/>
@@ -3931,7 +4031,7 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="54"/>
<source>Settings</source>
- <translation type="unfinished"/>
+ <translation>Cài đặt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="60"/>
@@ -4351,7 +4451,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="503"/>
<source>Settings</source>
- <translation type="unfinished"/>
+ <translation>Cài đặt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="509"/>
@@ -4591,957 +4691,896 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dữ liệu ẩn danh được thu thập&lt;/a&gt;để hỗ trợ cải thiện yuzu. &lt;br/&gt;&lt;br/&gt;Bạn có muốn chia sẽ dữ liệu sử dụng cho chúng tôi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Viễn trắc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Tốc độ giả lập hiện tại. Giá trị cao hơn hoặc thấp hơn 100% chỉ ra giả lập sẽ chạy nhanh hơn hoặc chậm hơn trên máy Switch</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Có bao nhiêu khung hình trên mỗi giây mà trò chơi đang hiển thị. Điều này sẽ thay đổi từ giữa các trò chơi và các khung cảnh khác nhau.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Thời gian mà giả lập lấy từ khung hình Switch, sẽ không kể đến giới hạn khung hình hoặc v-sync. Đối với tốc độ tối đa mà giả lập nhận được nhiều nhất là ở độ khoảng 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Tạm dừng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Chú ý định dạng trò chơi đã lỗi thời</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bạn đang sử dụng định dạng danh mục ROM giải mã cho trò chơi này, và đó là một định dạng lỗi thời đã được thay thế bởi những thứ khác như NCA, NAX, XCI, hoặc NSP. Danh mục ROM giải mã có thể thiếu các icon, metadata, và hỗ trợ cập nhật.&lt;br&gt;&lt;br&gt;Để hiểu thêm về các định dạng khác nhau của Switch mà yuzu hỗ trợ, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;vui lòng kiểm tra trên wiki của chúng tôi&lt;/a&gt;. Thông báo này sẽ không hiển thị lại lần sau.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Lỗi xảy ra khi nạp ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Định dạng ROM này không hỗ trợ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Đã xảy ra lỗi khi khởi tạo lõi đồ hoạ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Đã xảy ra lỗi không xác định. Hãy kiểm tra phần báo cáo để biết thêm chi tiết.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Xảy ra lỗi khi mở %1 thư mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Thư mục này không tồn tại!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Khai thác RomFS không thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Đã xảy ra lỗi khi sao chép tệp tin RomFS hoặc người dùng đã hủy bỏ hoạt động này.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Sườn</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Chọn chế độ kết xuất RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Vui lòng chọn cách mà bạn muốn RomFS kết xuất.&lt;br&gt;Chế độ Đầy Đủ sẽ sao chép toàn bộ tệp tin vào một danh mục mới trong khi &lt;br&gt;chế độ Sườn chỉ tạo kết cấu danh mục.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Khai thác RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Hủy bỏ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Khai thác RomFS thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Các hoạt động đã hoàn tất thành công.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Chọn danh mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Không thể tải thuộc tính của trò chơi.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Thực thi Switch (%1);;Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Nạp tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Mở danh mục ROM đã trích xuất</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Danh mục đã chọn không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Danh mục mà bạn đã chọn không có chứa tệp tin &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Những tệp tin Switch cài được (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Đang cài đặt tệp tin &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Ứng dụng hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Hệ thống lưu trữ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Cập nhật hệ thống ứng dụng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Gói phần mềm hệ thống (Loại A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Gói phần mềm (Loại B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Cập nhật trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Nội dung trò chơi có thể tải xuống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Tiêu đề Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Chọn cách cài đặt NCA...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vui lòng chọn loại tiêu đề mà bạn muốn cài đặt NCA này:
(Trong hầu hết trường hợp, chọn mặc định &apos;Game&apos; là tốt nhất.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Cài đặt đã không thành công</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Loại tiêu đề NCA mà bạn chọn nó không hợp lệ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Không tìm thấy tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Không tìm thấy tệp tin &quot;%1&quot;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Thiếu tài khoản yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Để gửi trường hợp thử nghiệm trò chơi tương thích, bạn phải liên kết tài khoản yuzu.&lt;br&gt;&lt;br/&gt;Để liên kết tải khoản yuzu của bạn, hãy đến Giả lập &amp;gt; Thiết lập &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Tệp tin Amiibo (%1);; Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Xảy ra lỗi khi nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Chụp ảnh màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Hình ảnh PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Bắt đầu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Tốc độ: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Tốc độ: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Trò chơi: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Khung hình: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Xác nhận mã khóa Rederivation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5558,37 +5597,37 @@ và phải tạo ra một bản sao lưu lại.
Điều này sẽ xóa mã khóa tự động tạo trên tệp tin của bạn và chạy lại mô-đun chiết xuất mã khoá.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5597,49 +5636,49 @@ on your system&apos;s performance.</source>
hệ thống của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Mã khóa xuất phát</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Chọn thư mục để sao chép RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vui lòng chọn RomFS mà bạn muốn chiết xuất.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Bạn có chắc chắn muốn đóng yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Bạn có chắc rằng muốn dừng giả lập? Bất kì tiến trình nào chưa được lưu sẽ bị mất.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5647,48 +5686,143 @@ Would you like to bypass this and exit anyway?</source>
Bạn có muốn bỏ qua yêu cầu đó và thoát luôn không?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Trống</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubic</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Chế độ cắm TV</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Cầm tay</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Trung bình</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Khỏe</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>Không có sẵn OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Đã xảy ra lỗi khi khởi tạo OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -6041,138 +6175,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Chụp ảnh màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Toàn màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Nạp tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6268,7 +6402,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="66"/>
<source>Search</source>
- <translation type="unfinished"/>
+ <translation>Tìm</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="76"/>
@@ -6906,30 +7040,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[chưa đặt nút]</translation>
</message>
@@ -6940,14 +7074,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Trục %1%2</translation>
</message>
@@ -6958,320 +7092,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[không xác định]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Trái</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Phải</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Xuống</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Lên</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Bắt đầu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[không sử dụng]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Cộng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Trừ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Cảm Ứng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/vi_VN.ts b/dist/languages/vi_VN.ts
index c09edc5d6..4c5961689 100644
--- a/dist/languages/vi_VN.ts
+++ b/dist/languages/vi_VN.ts
@@ -1108,78 +1108,78 @@ This would ban both their forum username and their IP address.</source>
<translation>Thiết lập yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>Âm thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>Gỡ lỗi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>Hệ thống tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>Chung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>Đồ hoạ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>Đồ họa Nâng cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>Phím tắt</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>Hồ sơ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>Mạng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>Hệ thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>Danh sách trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>Web</translation>
</message>
@@ -1373,17 +1373,22 @@ This would ban both their forum username and their IP address.</source>
<translation>Ẩn con trỏ chuột khi không dùng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>Đặt lại mọi tùy chỉnh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>Quá trình này sẽ thiết lập lại toàn bộ tùy chỉnh và gỡ hết mọi cài đặt cho từng game riêng lẻ. Quá trình này không xóa đường dẫn tới thư mục game, hồ sơ, hay hồ sơ của thiết lập phím. Tiếp tục?</translation>
</message>
@@ -1517,7 +1522,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="353"/>
<source>Force 16:10</source>
- <translation type="unfinished"/>
+ <translation>Dung 16:10</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="358"/>
@@ -1542,7 +1547,7 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="402"/>
<source>1X (720p/1080p)</source>
- <translation type="unfinished"/>
+ <translation>1X (720p/1080p)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="407"/>
@@ -1592,27 +1597,27 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="476"/>
<source>Nearest Neighbor</source>
- <translation type="unfinished"/>
+ <translation>Nearest Neighbor</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="481"/>
<source>Bilinear</source>
- <translation type="unfinished"/>
+ <translation>Bilinear</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="486"/>
<source>Bicubic</source>
- <translation type="unfinished"/>
+ <translation>Bicubic</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="491"/>
<source>Gaussian</source>
- <translation type="unfinished"/>
+ <translation>ScaleForce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="496"/>
<source>ScaleForce</source>
- <translation type="unfinished"/>
+ <translation>ScaleForce</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="501"/>
@@ -1627,12 +1632,12 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="540"/>
<source>FXAA</source>
- <translation type="unfinished"/>
+ <translation>FXAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="545"/>
<source>SMAA</source>
- <translation type="unfinished"/>
+ <translation>SMAA</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="601"/>
@@ -1671,43 +1676,43 @@ Immediate (no synchronization) just presents whatever is available and can exhib
<translation>Màu nền:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (Assembly Shaders, Chỉ Cho NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation type="unfinished"/>
</message>
@@ -1831,37 +1836,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>Bộ lọc góc nghiêng:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>Mặc định</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2244,7 +2269,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>Thiết lập</translation>
</message>
@@ -2311,22 +2336,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>Độ nhạy chuột</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>Chuyển động / Cảm ứng</translation>
</message>
@@ -2438,7 +2448,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>Cần trái</translation>
</message>
@@ -2532,14 +2542,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2558,7 +2568,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>Cộng</translation>
</message>
@@ -2571,15 +2581,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2636,247 +2646,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>Cần phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>Cài đặt</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>Bỏ trống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[không đặt]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>Chọn một giá trị giữa 0% và 100%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>Thiết lập Cần Điều Khiển</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>Sau khi bấm OK, di chuyển cần sang ngang, rồi sau đó sang dọc.
Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần sang dọc trước, rồi sang ngang.</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Tay cầm Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>Joycon đôi</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>Joycon Trái</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>Joycon Phải</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>Cầm tay</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>Tay cầm GameCube</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>Bắt đầu / Tạm ngưng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C-Stick</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>Lắc!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[Chờ]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>Hồ sơ mới</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>Nhập tên hồ sơ:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>Tạo Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>Tên hồ sơ không hợp lệ!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>Quá trình tạo hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>Xóa Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>Quá trình xóa hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>Nạp Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>Quá trình nạp hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>Lưu Hồ Sơ Phím</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>Quá trình lưu hồ sơ phím &quot;%1&quot; thất bại</translation>
</message>
@@ -3056,6 +3076,81 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>Mặc định</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3131,47 +3226,47 @@ Nếu muốn đảo ngược hướng cần điều khiển, di chuyển cần s
<translation>Nhà Phát Hành</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>Bổ Sung</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>Tổng Quan</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>Hệ Thống</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>Đồ Họa</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>Đồ Họa Nâng Cao</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>Âm Thanh</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
@@ -3373,7 +3468,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
<translation type="unfinished"/>
</message>
<message>
@@ -3410,7 +3505,7 @@ UUID: %2</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation type="unfinished"/>
</message>
@@ -3477,12 +3572,17 @@ UUID: %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[Chờ]</translation>
</message>
@@ -3628,7 +3728,7 @@ UUID: %2</source>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="156"/>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="275"/>
<source>Japan</source>
- <translation type="unfinished"/>
+ <translation>Nhật Bản</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="161"/>
@@ -3743,32 +3843,32 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="280"/>
<source>USA</source>
- <translation type="unfinished"/>
+ <translation>Hoa Kỳ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="285"/>
<source>Europe</source>
- <translation type="unfinished"/>
+ <translation>Châu Âu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="290"/>
<source>Australia</source>
- <translation type="unfinished"/>
+ <translation>Châu Úc</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="295"/>
<source>China</source>
- <translation type="unfinished"/>
+ <translation>Trung Quốc</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="300"/>
<source>Korea</source>
- <translation type="unfinished"/>
+ <translation>Hàn Quốc</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="305"/>
<source>Taiwan</source>
- <translation type="unfinished"/>
+ <translation>Đài Loan</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="313"/>
@@ -3931,7 +4031,7 @@ UUID: %2</source>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="54"/>
<source>Settings</source>
- <translation type="unfinished"/>
+ <translation>Cài đặt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_tas.ui" line="60"/>
@@ -4351,7 +4451,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="503"/>
<source>Settings</source>
- <translation type="unfinished"/>
+ <translation>Cài đặt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_vibration.ui" line="509"/>
@@ -4591,957 +4691,896 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Dữ liệu ẩn danh được thu thập&lt;/a&gt;để hỗ trợ cải thiện yuzu. &lt;br/&gt;&lt;br/&gt;Bạn có muốn chia sẽ dữ liệu sử dụng cho chúng tôi?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>Viễn trắc</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>Tốc độ giả lập hiện tại. Giá trị cao hơn hoặc thấp hơn 100% chỉ ra giả lập sẽ chạy nhanh hơn hoặc chậm hơn trên máy Switch</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>Có bao nhiêu khung hình trên mỗi giây mà trò chơi đang hiển thị. Điều này sẽ thay đổi từ trò chơi này đến trò chơi kia và khung cảnh này đến khung cảnh kia.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>Thời gian mà giả lập lấy từ khung hình Switch, sẽ không kể đến giới hạn khung hình hoặc v-sync. Đối với tốc độ tối đa mà giả lập nhận được nhiều nhất là ở độ khoảng 16.67 ms.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;Tạm dừng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>Chú ý định dạng trò chơi đã lỗi thời</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>Bạn đang sử dụng định dạng danh mục ROM giải mã cho trò chơi này, và đó là một định dạng lỗi thời đã được thay thế bởi những thứ khác như NCA, NAX, XCI, hoặc NSP. Danh mục ROM giải mã có thể thiếu biểu tượng, metadata, và hỗ trợ cập nhật.&lt;br&gt;&lt;br&gt;Để giải thích về các định dạng khác nhau của Switch mà yuzu hỗ trợ, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;vui lòng kiểm tra trên wiki của chúng tôi&lt;/a&gt;. Thông báo này sẽ không hiển thị lại lần sau.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>Xảy ra lỗi khi đang nạp ROM!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>Định dạng ROM này không hỗ trợ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>Đã xảy ra lỗi khi khởi tạo lõi video.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>Đã xảy ra lỗi không xác định. Vui lòng kiểm tra sổ ghi chép để biết thêm chi tiết.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>Xảy ra lỗi khi mở %1 thư mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>Thư mục này không tồn tại!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>Khai thác RomFS không thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>Đã xảy ra lỗi khi sao chép tệp tin RomFS hoặc người dùng đã hủy bỏ hoạt động này.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>Sườn</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>Chọn chế độ kết xuất RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>Vui lòng chọn RomFS mà bạn muốn kết xuất như thế nào.&lt;br&gt;Đầy đủ sẽ sao chép toàn bộ tệp tin vào một danh mục mới trong khi &lt;br&gt;bộ xương chỉ tạo kết cấu danh mục.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>Khai thác RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>Hủy bỏ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>Khai thác RomFS thành công!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>Các hoạt động đã hoàn tất thành công.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>Chọn danh mục</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>Thuộc tính</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>Thuộc tính của trò chơi không thể nạp được.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Thực thi Switch (%1);;Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>Nạp tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>Mở danh mục ROM đã trích xuất</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>Danh mục đã chọn không hợp lệ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>Danh mục mà bạn đã chọn không có chứa tệp tin &apos;main&apos;.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>Những tệp tin Switch cài được (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>Đang cài đặt tệp tin &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>Hệ thống ứng dụng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>Hệ thống lưu trữ</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>Cập nhật hệ thống ứng dụng</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>Gói phần mềm (Loại A)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>Gói phần mềm (Loại B)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>Trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>Cập nhật trò chơi</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>Nội dung trò chơi có thể tải xuống</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Tiêu đề Delta</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>Chọn loại NCA để cài đặt...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>Vui lòng chọn loại tiêu đề mà bạn muốn cài đặt NCA này:
(Trong hầu hết trường hợp, chọn mặc định &apos;Game&apos; là tốt nhất.)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>Cài đặt đã không thành công</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>Loại tiêu đề NCA mà bạn chọn nó không hợp lệ.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>Không tìm thấy tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>Không tìm thấy &quot;%1&quot; tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>OK</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>Thiếu tài khoản yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>Để gửi trường hợp thử nghiệm trò chơi tương thích, bạn phải liên kết tài khoản yuzu.&lt;br&gt;&lt;br/&gt;Để liên kết tải khoản yuzu của bạn, hãy đến Giả lập &amp;gt; Thiết lập &amp;gt; Web.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Tệp tin Amiibo (%1);; Tất cả tệp tin (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>Nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>Xảy ra lỗi khi nạp dữ liệu Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>Chụp ảnh màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>Hình ảnh PNG (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>&amp;Bắt đầu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation type="unfinished"><numerusform></numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>Tốc độ: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>Tốc độ: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>Trò chơi: %1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>Khung hình: %1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation type="unfinished"/>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>Xác nhận mã khóa Rederivation</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5558,37 +5597,37 @@ và phải tạo ra một bản sao lưu lại.
Điều này sẽ xóa mã khóa tự động tạo trên tệp tin của bạn và chạy lại mô-đun mã khóa derivation.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5597,49 +5636,49 @@ on your system&apos;s performance.</source>
vào hiệu suất hệ thống của bạn.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>Mã khóa xuất phát</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>Chọn thư mục để sao chép RomFS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>Vui lòng chọn RomFS mà bạn muốn sao chép.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>Bạn có chắc chắn muốn đóng yuzu?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>Bạn có chắc rằng muốn dừng giả lập? Bất kì tiến trình nào chưa được lưu sẽ bị mất.</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5647,48 +5686,143 @@ Would you like to bypass this and exit anyway?</source>
Bạn có muốn bỏ qua yêu cầu đó và thoát luôn không?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>Trống</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>Bilinear</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>Bicubic</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>ScaleForce</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>Chế độ cắm TV</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>Cầm tay</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>Trung bình</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>Khỏe</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation type="unfinished"/>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation type="unfinished"/>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>Không có sẵn OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>Đã xảy ra lỗi khi khởi tạo OpenGL!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation type="unfinished"/>
</message>
@@ -6041,138 +6175,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>Chụp ảnh màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>Toàn màn hình</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>Nạp tệp tin</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation type="unfinished"/>
</message>
@@ -6268,7 +6402,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="66"/>
<source>Search</source>
- <translation type="unfinished"/>
+ <translation>Tìm</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="76"/>
@@ -6906,30 +7040,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[chưa đặt nút]</translation>
</message>
@@ -6940,14 +7074,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Trục %1%2</translation>
</message>
@@ -6958,320 +7092,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[không xác định]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>Trái</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>Phải</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>Xuống</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>Lên</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>Bắt đầu</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[không sử dụng]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>Cộng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>Trừ</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>Cảm Ứng</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation type="unfinished"/>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation type="unfinished"/>
</message>
diff --git a/dist/languages/zh_CN.ts b/dist/languages/zh_CN.ts
index 50b88e2b4..2c0885dfa 100644
--- a/dist/languages/zh_CN.ts
+++ b/dist/languages/zh_CN.ts
@@ -1134,78 +1134,78 @@ This would ban both their forum username and their IP address.</source>
<translation>yuzu 设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>声音</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>调试</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>文件系统</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>通用</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>图形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>高级图形选项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>热键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>控制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>用户配置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>网络</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>系统</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>游戏列表</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>网络</translation>
</message>
@@ -1399,17 +1399,22 @@ This would ban both their forum username and their IP address.</source>
<translation>自动隐藏鼠标光标</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation>禁用控制器程序</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>重置所有设置项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>将重置模拟器所有设置并删除所有游戏的单独设置。这不会删除游戏目录、个人文件及输入配置文件。是否继续?</translation>
</message>
@@ -1700,43 +1705,43 @@ Immediate (无同步)只显示可用内容,并可能产生撕裂。</translati
<translation>背景颜色:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM (汇编着色器,仅限 NVIDIA 显卡)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
<translation>SPIR-V (实验性,仅限 Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>关闭</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>垂直同步关</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>推荐</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>开启</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>垂直同步开</translation>
</message>
@@ -1861,37 +1866,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>启用计算管线 (仅限 Intel 显卡 Vulkan 模式)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>在视频播放期间以正常速度运行游戏,即使帧率未锁定。</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>播放视频时帧率同步</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>改进某些游戏中透明效果的渲染。</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation>屏障反馈环路</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>各向异性过滤:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>自动</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>系统默认</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2274,7 +2299,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>设置</translation>
</message>
@@ -2341,22 +2366,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>使用 Amiibo 随机 ID</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>启用鼠标平移</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>鼠标灵敏度</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>体感/触摸</translation>
</message>
@@ -2468,7 +2478,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>左摇杆</translation>
</message>
@@ -2562,14 +2572,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2588,7 +2598,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -2601,15 +2611,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2666,247 +2676,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>右摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation>鼠标平移</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>设置</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[未设置]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>反转按键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>切换键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>连发键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>体感方向倒置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>阈值设定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>选择一个介于 0% 和 100% 之间的值</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>切换轴</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>陀螺仪阈值设定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>校准传感器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>映射摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>在按下确定后,首先水平移动你的手柄,然后垂直移动它。
如果要使体感方向倒置,首先垂直移动你的手柄,然后水平移动它。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>中心轴</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>摇杆死区:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>摇杆灵敏度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro Controller</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>双 Joycons 手柄</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>左 Joycon 手柄</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>右 Joycon 手柄</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>掌机模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>精灵球 PLUS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>世嘉创世纪</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>开始 / 暂停</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>控制摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C 摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>摇动!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[等待中]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>新建自定义设置</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>输入配置文件名称:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>新建输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>输入的配置文件名称无效!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>新建输入配置文件 &quot;%1&quot; 失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>删除输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>删除输入配置文件 &quot;%1&quot; 失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>加载输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>加载输入配置文件 &quot;%1&quot; 失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>保存输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>保存输入配置文件 &quot;%1&quot; 失败</translation>
</message>
@@ -3086,6 +3106,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation>设置鼠标平移</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>启用</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation>可通过热键进行切换</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation>灵敏度</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation>水平方向</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation>垂直方向</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation>调整死区平衡</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation>抵消游戏内置的死区</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation>摇杆漂移</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation>强烈程度</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation>最小值</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>系统默认</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3161,47 +3256,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>开发商</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>附加项</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>通用</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>系统</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>图形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>高级图形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>声音</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
<translation>输入配置文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>属性</translation>
</message>
@@ -3404,8 +3499,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>如果您想使用这个控制器,请在游戏开始前为玩家 1 设置使用右控制器,玩家 2 使用双 joycon 控制器,从而允许该控制器被正确检测。</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation>要使用健身环控制器,请在游戏开始前将玩家 1 设置使用右 Joy-Con 控制器(包括物理和模拟层面),玩家 2 使用左 Joy-Con 控制器(物理和模拟层面)。</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3441,7 +3536,7 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
<translation>启用</translation>
</message>
@@ -3508,12 +3603,17 @@ UUID: %2</translation>
<translation>当前映射的设备未连接健身环控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation>当前映射的设备未连接</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>意外的驱动结果: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[请按键]</translation>
</message>
@@ -4623,962 +4723,901 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;我们收集匿名数据&lt;/a&gt;来帮助改进 yuzu 。&lt;br/&gt;&lt;br/&gt;您愿意和我们分享您的使用数据吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>使用数据共享</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>检测到 Vulkan 的安装已损坏</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Vulkan 初始化失败。&lt;br&gt;&lt;br&gt;点击&lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;这里&lt;/a&gt;获取此问题的相关信息。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation>游戏正在运行</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>正在加载 Web 应用程序...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>禁用 Web 应用程序</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>禁用 Web 应用程序可能会发生未知的行为,且只能在《超级马里奥 3D 全明星》中使用。您确定要禁用 Web 应用程序吗?
(您可以在调试选项中重新启用它。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>当前正在构建的着色器数量</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>当前选定的分辨率缩放比例。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>当前的模拟速度。高于或低于 100% 的值表示运行速度比实际的 Switch 更快或更慢。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>游戏当前运行的帧率。这将因游戏和场景的不同而有所变化。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>在不计算速度限制和垂直同步的情况下,模拟一个 Switch 帧的实际时间。若要进行全速模拟,这个数值不应超过 16.67 毫秒。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>取消静音</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>静音</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>重置音量</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>清除最近文件 (&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
<translation>已启用模拟鼠标</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>实体鼠标输入与鼠标平移不兼容。请在高级输入设置中禁用模拟鼠标以使用鼠标平移。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>继续 (&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>暂停 (&amp;P)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu 正在运行中</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>过时游戏格式警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>目前使用的游戏为解体的 ROM 目录格式,这是一种过时的格式,已被其他格式替代,如 NCA,NAX,XCI 或 NSP。解体的 ROM 目录缺少图标、元数据和更新支持。&lt;br&gt;&lt;br&gt;有关 yuzu 支持的各种 Switch 格式的说明,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;请查看我们的 wiki&lt;/a&gt;。此消息将不会再次出现。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>加载 ROM 时出错!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>该 ROM 格式不受支持。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>初始化视频核心时发生错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu 在运行视频核心时发生错误。这可能是由 GPU 驱动程序过旧造成的。有关详细信息,请参阅日志文件。关于日志文件的更多信息,请参考以下页面:&lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;如何上传日志文件&lt;/a&gt;。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>加载 ROM 时出错! %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;请参考&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速导航&lt;/a&gt;以获取相关文件。&lt;br&gt;您可以参考 yuzu 的 wiki 页面&lt;/a&gt;或 Discord 社区&lt;/a&gt;以获得帮助。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>发生了未知错误。请查看日志了解详情。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
<translation>正在关闭…</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>保存数据</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>Mod 数据</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>打开 %1 文件夹时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>文件夹不存在!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>打开可转移着色器缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>为该游戏创建着色器缓存目录时失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
<translation>删除内容时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
<translation>删除更新时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
<translation>删除 DLC 时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
<translation>删除已安装的游戏内容?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
<translation>删除已安装的游戏更新?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
<translation>删除已安装的游戏 DLC 内容?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>删除项目</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>删除成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>成功删除已安装的游戏。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>该游戏未安装于 NAND 中,无法删除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>成功删除已安装的游戏更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>这个游戏没有任何已安装的更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>这个游戏没有任何已安装的 DLC 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>成功删除游戏 %1 安装的 DLC 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>删除 OpenGL 模式的着色器缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>删除 Vulkan 模式的着色器缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>删除所有的着色器缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>移除自定义游戏设置?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
<translation>移除缓存?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>删除文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>删除着色器缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>这个游戏的着色器缓存不存在。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>成功删除着色器缓存。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>删除着色器缓存失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
<translation>删除 Vulkan 驱动程序管线缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
<translation>删除驱动程序管线缓存失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>删除着色器缓存时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>着色器缓存删除成功。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>删除着色器缓存目录失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>移除自定义游戏设置时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>这个游戏的自定义设置不存在。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>成功移除自定义游戏设置。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>移除自定义游戏设置失败。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS 提取失败!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>复制 RomFS 文件时出错,或用户取消了操作。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>完整</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>框架</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>选择 RomFS 转储模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>请选择 RomFS 转储的方式。&lt;br&gt;“完整” 会将所有文件复制到新目录中,而&lt;br&gt;“框架” 只会创建目录结构。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 没有足够的空间用于提取 RomFS。请保持足够的空间或于模拟—&gt;设置—&gt;系统—&gt;文件系统—&gt;转储根目录中选择一个其他目录。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>正在提取 RomFS...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS 提取成功!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>操作成功完成。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
<translation>创建快捷方式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
<translation>这将为当前的游戏创建快捷方式。但在其更新后,快捷方式可能无法正常工作。是否继续?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
<translation>无法在桌面创建快捷方式。路径“ %1 ”不存在。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>无法在应用程序菜单中创建快捷方式。路径“ %1 ”不存在且无法被创建。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
<translation>创建图标</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
<translation>无法创建图标文件。路径“ %1 ”不存在且无法被创建。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
<translation>使用 yuzu 启动 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
<translation>在 %1 处创建快捷方式时失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
<translation>成功地在 %1 处创建快捷方式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>打开 %1 时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>选择目录</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>属性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>无法加载该游戏的属性信息。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch 可执行文件 (%1);;所有文件 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>加载文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>打开提取的 ROM 目录</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>选择的目录无效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>选择的目录不包含 “main” 文件。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>可安装 Switch 文件 (*.nca *.nsp *.xci);;任天堂内容档案 (*.nca);;任天堂应用包 (*.nsp);;NX 卡带镜像 (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>安装文件</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>剩余 %n 个文件</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>正在安装文件 &quot;%1&quot;...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>安装结果</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>为了避免可能存在的冲突,我们不建议将游戏本体安装到 NAND 中。
此功能仅用于安装游戏更新和 DLC 。</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>最近安装了 %n 个文件
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n 个文件被覆盖
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n 个文件安装失败
</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>系统应用</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>系统档案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>系统应用更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>固件包 (A型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>固件包 (B型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>游戏</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>游戏更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>游戏 DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>差量程序</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>选择 NCA 安装类型...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>请选择此 NCA 的程序类型:
(在大多数情况下,选择默认的“游戏”即可。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>安装失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>选择的 NCA 程序类型无效。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>找不到文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>文件 &quot;%1&quot; 未找到</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
<translation>硬件不满足要求</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
<translation>您的系统不满足运行 yuzu 的推荐配置。兼容性报告已被禁用。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>未设置 yuzu 账户</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>要提交游戏兼容性测试用例,您必须设置您的 yuzu 帐户。&lt;br&gt;&lt;br/&gt;要设置您的 yuzu 帐户,请转到模拟 &amp;gt; 设置 &amp;gt; 网络。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>打开 URL 时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>无法打开 URL : &quot;%1&quot; 。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS 录制中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>覆盖玩家 1 的文件?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>检测到无效配置</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>掌机手柄无法在主机模式中使用。将会选择 Pro controller。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
<translation>当前的 Amiibo 已被移除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
<translation>错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
<translation>当前游戏并没有在寻找 Amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo 文件 (%1);; 全部文件 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>加载 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>加载 Amiibo 数据时出错</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
<translation>选择的文件并不是有效的 amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
<translation>选择的文件已在使用中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
<translation>发生了未知错误</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>捕获截图</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG 图像 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 状态:正在运行 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS 状态:正在录制 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 状态:空闲 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS 状态:无效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>停止运行 (&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>开始 (&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>停止录制 (&amp;E)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>录制 (&amp;E)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>正在编译 %n 个着色器文件</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>缩放比例: %1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>速度: %1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>速度: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>FPS: %1 (未锁定)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>FPS: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>帧延迟: %1 毫秒</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU NORMAL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU HIGH</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU EXTREME</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU ERROR</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>主机模式</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>掌机模式</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>无</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>邻近取样</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>双线性过滤</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>双三线过滤</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>高斯模糊</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>强制缩放</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>抗锯齿关</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
<translation>音量: 静音</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>音量: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>确认重新生成密钥</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5594,37 +5633,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
这将删除您自动生成的密钥文件并重新运行密钥生成模块。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>项目丢失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- 丢失 BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - 丢失 BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- 丢失 PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>组件丢失</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>密钥缺失。&lt;br&gt;请查看&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速导航&lt;/a&gt;以获得你的密钥、固件和游戏。&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5633,49 +5672,49 @@ on your system&apos;s performance.</source>
您的系统性能。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>生成密钥</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
<translation>系统固件解密失败</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
<translation>当前密钥无法解密系统固件。&lt;br&gt;请查看&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速导航&lt;/a&gt;以获得你的密钥、固件和游戏。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>选择 RomFS 转储目标</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>请选择希望转储的 RomFS。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>您确定要关闭 yuzu 吗?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>您确定要停止模拟吗?未保存的进度将会丢失。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5683,48 +5722,143 @@ Would you like to bypass this and exit anyway?</source>
您希望忽略并退出吗?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>无</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>邻近取样</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>双线性过滤</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>双三线过滤</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>高斯模糊</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>强制缩放</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>主机模式</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>掌机模式</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>正常</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>高</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>Extreme</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>无</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>OpenGL 模式不可用!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
<translation>不支持 OpenGL 共享上下文。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu 没有使用 OpenGL 进行编译。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>初始化 OpenGL 时出错!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>您的 GPU 可能不支持 OpenGL ,或者您没有安装最新的显卡驱动。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>初始化 OpenGL 4.6 时出错!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>您的 GPU 可能不支持 OpenGL 4.6 ,或者您没有安装最新的显卡驱动。&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>您的 GPU 可能不支持某些必需的 OpenGL 扩展。请确保您已经安装最新的显卡驱动。&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;不支持的扩展:&lt;br&gt;%2</translation>
</message>
@@ -6078,138 +6212,138 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
<translation>开启/关闭静音</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
<translation>主窗口</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
<translation>调低音量</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
<translation>调高音量</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>捕获截图</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
<translation>更改窗口滤镜</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
<translation>更改主机运行模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
<translation>更改 GPU 精度</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
<translation>继续/暂停模拟</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
<translation>退出全屏</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
<translation>退出 yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>全屏</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>加载文件</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
<translation>加载/移除 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
<translation>重新启动模拟</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
<translation>停止模拟</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
<translation>TAS 录制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
<translation>重置 TAS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
<translation>TAS 开始/停止</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
<translation>切换搜索栏</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
<translation>切换帧率限制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
<translation>切换鼠标平移</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
<translation>切换状态栏</translation>
</message>
@@ -6952,30 +7086,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[未设置]</translation>
</message>
@@ -6986,14 +7120,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>轴 %1%2</translation>
</message>
@@ -7004,320 +7138,320 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[未知]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>左</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>右</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>下</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>开始</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>○</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>╳</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>□</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Δ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>分享</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>选项</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[未指定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[无效]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat 控制器 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2轴 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2轴 %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2体感 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2按键 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[未使用]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>左摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>右摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>+</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>-</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>Home</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>截图</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>触摸</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>鼠标滚轮</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>后退</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>前进</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>任务键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>额外按键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3 控制器 %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3轴 %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
<translation>%1%2%3 按键 %4</translation>
</message>
diff --git a/dist/languages/zh_TW.ts b/dist/languages/zh_TW.ts
index a4605917f..436f3bdb7 100644
--- a/dist/languages/zh_TW.ts
+++ b/dist/languages/zh_TW.ts
@@ -122,7 +122,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/multiplayer/chat_room.cpp" line="330"/>
<source>%1 has been unbanned</source>
- <translation>%1 已被解封</translation>
+ <translation>%1 已被解除禁止</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/chat_room.cpp" line="446"/>
@@ -153,7 +153,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/multiplayer/chat_room.cpp" line="488"/>
<source>Kick Player</source>
- <translation>踢出玩家</translation>
+ <translation>踢除玩家</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/chat_room.cpp" line="489"/>
@@ -267,17 +267,17 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="143"/>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Does the game reach gameplay?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;游戏是否具有游戏性?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;是否可以進行遊戲?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="176"/>
<source>Yes The game works without crashes</source>
- <translation>是的,游戏运行时没有崩溃</translation>
+ <translation>是,遊戲正常運作,並無當機</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="183"/>
<source>No The game crashes or freezes during gameplay</source>
- <translation>不,游戏运行时出现卡死或崩溃</translation>
+ <translation>否,遊玩過程中會出現當機或凍結</translation>
</message>
<message>
<location filename="../../src/yuzu/compatdb.ui" line="195"/>
@@ -455,27 +455,27 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.ui" line="52"/>
<source>Camera Image Source:</source>
- <translation>摄像头图像来源:</translation>
+ <translation>相機圖像來源:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.ui" line="71"/>
<source>Input device:</source>
- <translation>输入设备:</translation>
+ <translation>輸入裝置:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.ui" line="96"/>
<source>Preview</source>
- <translation>预览</translation>
+ <translation>預覽</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.ui" line="108"/>
<source>Resolution: 320*240</source>
- <translation>分辨率: 320*240</translation>
+ <translation>解析度:320*240</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.ui" line="115"/>
<source>Click to preview</source>
- <translation>点击进行预览</translation>
+ <translation>按一下以預覽</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_camera.ui" line="140"/>
@@ -853,7 +853,7 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="15"/>
<source>Debugger</source>
- <translation>调试器</translation>
+ <translation>偵錯工具</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.ui" line="23"/>
@@ -1073,17 +1073,17 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.cpp" line="35"/>
<source>Restart Required</source>
- <translation>需要重启</translation>
+ <translation>需要重新啟動</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.cpp" line="36"/>
<source>yuzu is required to restart in order to apply this setting.</source>
- <translation>重启 yuzu 后才能应用此设置。</translation>
+ <translation>yuzu 需要重新啟動以套用此設定。</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.cpp" line="88"/>
<source>Web applet not compiled</source>
- <translation>Web 应用程序未编译</translation>
+ <translation>Web 小程式未編譯</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_debug.cpp" line="95"/>
@@ -1136,78 +1136,78 @@ This would ban both their forum username and their IP address.</source>
<translation>yuzu 設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="156"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="159"/>
<source>Audio</source>
<translation>音訊</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="55"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
<source>Debug</source>
<translation>偵錯</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
<source>Filesystem</source>
<translation>檔案系統</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="150"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="153"/>
<source>General</source>
<translation>一般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="58"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="158"/>
<source>Graphics</source>
<translation>圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
<source>GraphicsAdvanced</source>
<translation>進階圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
<source>Hotkeys</source>
<translation>快速鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="157"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="160"/>
<source>Controls</source>
<translation>控制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
<source>Profiles</source>
<translation>設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
<source>Network</source>
<translation>網路</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="64"/>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="152"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="155"/>
<source>System</source>
<translation>系統</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="68"/>
<source>Game List</source>
<translation>遊戲清單</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_dialog.cpp" line="69"/>
<source>Web</source>
<translation>網路服務</translation>
</message>
@@ -1401,17 +1401,22 @@ This would ban both their forum username and their IP address.</source>
<translation>滑鼠閒置時自動隱藏</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="95"/>
+ <source>Disable controller applet</source>
+ <translation>禁用控制器程序</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_general.ui" line="137"/>
<source>Reset All Settings</source>
<translation>重設所有設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="67"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_general.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_general.cpp" line="68"/>
<source>This reset all settings and remove all per-game configurations. This will not delete game directories, profiles, or input profiles. Proceed?</source>
<translation>這將重設所有遊戲的額外設定,但不會刪除遊戲資料夾、使用者設定檔、輸入設定檔,是否繼續?</translation>
</message>
@@ -1477,7 +1482,7 @@ This would ban both their forum username and their IP address.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="209"/>
<source>VSync Mode:</source>
- <translation>垂直同步模式:</translation>
+ <translation>垂直同步模式:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="216"/>
@@ -1548,7 +1553,7 @@ Immediate (无同步)只显示可用内容,并可能产生撕裂。</translati
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="353"/>
<source>Force 16:10</source>
- <translation>强制 16:10</translation>
+ <translation>強制 16:10</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="358"/>
@@ -1668,17 +1673,17 @@ Immediate (无同步)只显示可用内容,并可能产生撕裂。</translati
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="601"/>
<source>Use global FSR Sharpness</source>
- <translation>启用全局 FSR 锐化</translation>
+ <translation>啟用全域 FSR 清晰度</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="606"/>
<source>Set FSR Sharpness</source>
- <translation>设置 FSR 锐化</translation>
+ <translation>設定 FSR 清晰度</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="620"/>
<source>FSR Sharpness:</source>
- <translation>FSR 锐化度:</translation>
+ <translation>FSR 清晰度:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics.ui" line="687"/>
@@ -1702,43 +1707,43 @@ Immediate (无同步)只显示可用内容,并可能产生撕裂。</translati
<translation>背景顏色:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="89"/>
<source>GLASM (Assembly Shaders, NVIDIA Only)</source>
<translation>GLASM(組合語言著色器,僅限 NVIDIA)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="90"/>
<source>SPIR-V (Experimental, Mesa Only)</source>
- <translation>SPIR-V (实验性,仅限 Mesa)</translation>
+ <translation>SPIR-V (實驗性,僅 Mesa)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="299"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="294"/>
<source>%1%</source>
<comment>FSR sharpening percentage (e.g. 50%)</comment>
<translation>%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="307"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="302"/>
<source>Off</source>
<translation>關閉</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="303"/>
<source>VSync Off</source>
<translation>垂直同步關</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="305"/>
<source>Recommended</source>
<translation>推薦</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="313"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="308"/>
<source>On</source>
<translation>開啟</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics.cpp" line="309"/>
<source>VSync On</source>
<translation>垂直同步開</translation>
</message>
@@ -1768,22 +1773,22 @@ Immediate (无同步)只显示可用内容,并可能产生撕裂。</translati
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="90"/>
<source>ASTC recompression:</source>
- <translation>ASTC 纹理重压缩:</translation>
+ <translation>ASTC 重新壓縮:</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="98"/>
<source>Uncompressed (Best quality)</source>
- <translation>不压缩 (最高质量)</translation>
+ <translation>不壓縮 (最高品質)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="103"/>
<source>BC1 (Low quality)</source>
- <translation>BC1 (低质量)</translation>
+ <translation>BC1 (低品質)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="108"/>
<source>BC3 (Medium quality)</source>
- <translation>BC3 (中等质量)</translation>
+ <translation>BC3 (中品質)</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="119"/>
@@ -1863,37 +1868,57 @@ Compute pipelines are always enabled on all other drivers.</source>
<translation>启用计算管线 (仅限 Intel 显卡 Vulkan 模式)</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="212"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="197"/>
+ <source>Run the game at normal speed during video playback, even when the framerate is unlocked.</source>
+ <translation>在视频播放期间以正常速度运行游戏,即使帧率未锁定。</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="200"/>
+ <source>Sync to framerate of video playback</source>
+ <translation>播放视频时帧率同步</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="207"/>
+ <source>Improves rendering of transparency effects in specific games.</source>
+ <translation>改进某些游戏中透明效果的渲染。</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="210"/>
+ <source>Barrier feedback loops</source>
+ <translation>屏障反馈循环</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="232"/>
<source>Anisotropic Filtering:</source>
<translation>各向異性過濾:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
<source>Automatic</source>
<translation>自動</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
<source>Default</source>
<translation>預設</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="250"/>
<source>2x</source>
<translation>2x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="235"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="255"/>
<source>4x</source>
<translation>4x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="240"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="260"/>
<source>8x</source>
<translation>8x</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="245"/>
+ <location filename="../../src/yuzu/configuration/configure_graphics_advanced.ui" line="265"/>
<source>16x</source>
<translation>16x</translation>
</message>
@@ -2276,7 +2301,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2602"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2616"/>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2630"/>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2791"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2756"/>
<source>Configure</source>
<translation>設定</translation>
</message>
@@ -2340,25 +2365,10 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2742"/>
<source>Use random Amiibo ID</source>
- <translation>启用 Amiibo 随机 ID</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2755"/>
- <source>Enable mouse panning</source>
- <translation>啟用滑鼠平移</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2762"/>
- <source>Mouse sensitivity</source>
- <translation>滑鼠靈敏度</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2768"/>
- <source>%</source>
- <translation>%</translation>
+ <translation>啟用 Amiibo 隨機 ID</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2784"/>
+ <location filename="../../src/yuzu/configuration/configure_input_advanced.ui" line="2749"/>
<source>Motion / Touch</source>
<translation>體感/觸控</translation>
</message>
@@ -2378,47 +2388,47 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="28"/>
<source>Input Profiles</source>
- <translation>输入配置文件</translation>
+ <translation>輸入設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="49"/>
<source>Player 1 Profile</source>
- <translation>玩家 1 配置文件</translation>
+ <translation>玩家 1 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="84"/>
<source>Player 2 Profile</source>
- <translation>玩家 2 配置文件</translation>
+ <translation>玩家 2 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="119"/>
<source>Player 3 Profile</source>
- <translation>玩家 3 配置文件</translation>
+ <translation>玩家 3 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="154"/>
<source>Player 4 Profile</source>
- <translation>玩家 4 配置文件</translation>
+ <translation>玩家 4 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="189"/>
<source>Player 5 Profile</source>
- <translation>玩家 5 配置文件</translation>
+ <translation>玩家 5 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="224"/>
<source>Player 6 Profile</source>
- <translation>玩家 6 配置文件</translation>
+ <translation>玩家 6 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="259"/>
<source>Player 7 Profile</source>
- <translation>玩家 7 配置文件</translation>
+ <translation>玩家 7 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.ui" line="294"/>
<source>Player 8 Profile</source>
- <translation>玩家 8 配置文件</translation>
+ <translation>玩家 8 設定檔</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.cpp" line="35"/>
@@ -2428,7 +2438,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_per_game.cpp" line="47"/>
<source>Player %1 profile</source>
- <translation>玩家 %1 配置文件</translation>
+ <translation>玩家 %1 設定檔</translation>
</message>
</context>
<context>
@@ -2446,7 +2456,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="100"/>
<source>Input Device</source>
- <translation>輸入裝置:</translation>
+ <translation>輸入裝置</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="137"/>
@@ -2470,7 +2480,7 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="272"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1324"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1340"/>
<source>Left Stick</source>
<translation>左搖桿</translation>
</message>
@@ -2564,14 +2574,14 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1232"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1329"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1345"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1287"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1326"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1321"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1337"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
@@ -2590,7 +2600,7 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1526"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1565"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1320"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1336"/>
<source>Plus</source>
<translation>+</translation>
</message>
@@ -2603,15 +2613,15 @@ Compute pipelines are always enabled on all other drivers.</source>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1679"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1718"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1323"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1330"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1339"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1346"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1734"/>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="1773"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1322"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1338"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
@@ -2668,247 +2678,257 @@ Compute pipelines are always enabled on all other drivers.</source>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2497"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1325"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1341"/>
<source>Right Stick</source>
<translation>右搖桿</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="383"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="468"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="566"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="661"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3085"/>
+ <source>Mouse panning</source>
+ <translation>鼠标平移</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.ui" line="3124"/>
+ <source>Configure</source>
+ <translation>設定</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="384"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="469"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="567"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="662"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="385"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="470"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="570"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="589"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="663"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="386"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="471"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="571"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="590"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="664"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="388"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="414"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="675"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="389"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="415"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="676"/>
<source>Invert button</source>
<translation>無效按鈕</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="394"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="666"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="395"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="667"/>
<source>Toggle button</source>
<translation>切換按鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="400"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="401"/>
<source>Turbo button</source>
<translation>连发键</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="408"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="409"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="618"/>
<source>Invert axis</source>
<translation>方向反轉</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="420"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="421"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Set threshold</source>
<translation>設定閾值</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="424"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="477"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="425"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="478"/>
<source>Choose a value between 0% and 100%</source>
<translation>選擇介於 0% 和 100% 之間的值</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="437"/>
<source>Toggle axis</source>
<translation>切换轴</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="473"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="474"/>
<source>Set gyro threshold</source>
<translation>陀螺仪阈值设定</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="482"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="483"/>
<source>Calibrate sensor</source>
<translation>校准传感器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="522"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
<source>Map Analog Stick</source>
<translation>搖桿映射</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="523"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="524"/>
<source>After pressing OK, first move your joystick horizontally, and then vertically.
To invert the axes, first move your joystick vertically, and then horizontally.</source>
<translation>按下確定後,先水平再上下移動您的搖桿。
要反轉方向,則先上下再水平移動您的搖桿。</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="592"/>
<source>Center axis</source>
<translation>中心轴</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="699"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1049"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="700"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1065"/>
<source>Deadzone: %1%</source>
<translation>無感帶:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="708"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1054"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="709"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1070"/>
<source>Modifier Range: %1%</source>
<translation>輕推靈敏度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="734"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1079"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="750"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
<source>Pro Controller</source>
<translation>Pro 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1083"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
<source>Dual Joycons</source>
<translation>雙 Joycon 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1087"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1103"/>
<source>Left Joycon</source>
<translation>左 Joycon 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1091"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1107"/>
<source>Right Joycon</source>
<translation>右 Joycon 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1095"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1111"/>
<source>Handheld</source>
<translation>掌機模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1099"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1115"/>
<source>GameCube Controller</source>
<translation>GameCube 手把</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1108"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
<source>Poke Ball Plus</source>
<translation>精靈球 PLUS</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1112"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1128"/>
<source>NES Controller</source>
<translation>NES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1116"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1132"/>
<source>SNES Controller</source>
<translation>SNES 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1120"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1136"/>
<source>N64 Controller</source>
<translation>N64 控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1124"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1140"/>
<source>Sega Genesis</source>
<translation>Mega Drive</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1328"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1344"/>
<source>Start / Pause</source>
<translation>開始 / 暫停</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1331"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1347"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1332"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1348"/>
<source>Control Stick</source>
<translation>控制搖桿</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1333"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1349"/>
<source>C-Stick</source>
<translation>C 搖桿</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1434"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1450"/>
<source>Shake!</source>
<translation>搖動!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1436"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1452"/>
<source>[waiting]</source>
<translation>[等待中]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>New Profile</source>
<translation>新增設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1531"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
<source>Enter a profile name:</source>
<translation>輸入設定檔名稱:</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1539"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1547"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1555"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1563"/>
<source>Create Input Profile</source>
<translation>建立輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1540"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1556"/>
<source>The given profile name is not valid!</source>
<translation>輸入的設定檔名稱無效!</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1548"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1564"/>
<source>Failed to create the input profile &quot;%1&quot;</source>
<translation>建立輸入設定檔「%1」失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1568"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1584"/>
<source>Delete Input Profile</source>
<translation>刪除輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1569"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1585"/>
<source>Failed to delete the input profile &quot;%1&quot;</source>
<translation>刪除輸入設定檔「%1」失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1591"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1607"/>
<source>Load Input Profile</source>
<translation>載入輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1592"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1608"/>
<source>Failed to load the input profile &quot;%1&quot;</source>
<translation>載入輸入設定檔「%1」失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1617"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1633"/>
<source>Save Input Profile</source>
<translation>儲存輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1618"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1634"/>
<source>Failed to save the input profile &quot;%1&quot;</source>
<translation>儲存輸入設定檔「%1」失敗</translation>
</message>
@@ -3088,6 +3108,81 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
</message>
</context>
<context>
+ <name>ConfigureMousePanning</name>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="6"/>
+ <source>Configure mouse panning</source>
+ <translation>设置鼠标平移</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="12"/>
+ <source>Enable</source>
+ <translation>啟用</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="15"/>
+ <source>Can be toggled via a hotkey</source>
+ <translation>可通过热键进行切换</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="24"/>
+ <source>Sensitivity</source>
+ <translation>灵敏度</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="30"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="94"/>
+ <source>Horizontal</source>
+ <translation>水平方向</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="40"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="104"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="130"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="165"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="191"/>
+ <source>%</source>
+ <translation>%</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="56"/>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="120"/>
+ <source>Vertical</source>
+ <translation>垂直方向</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="85"/>
+ <source>Deadzone counterweight</source>
+ <translation>调整死区范围</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="88"/>
+ <source>Counteracts a game&apos;s built-in deadzone</source>
+ <translation>调整游戏内置的死区范围</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="149"/>
+ <source>Stick decay</source>
+ <translation>摇杆老化</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="155"/>
+ <source>Strength</source>
+ <translation>强烈程度</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="181"/>
+ <source>Minimum</source>
+ <translation>最小值</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_mouse_panning.ui" line="221"/>
+ <source>Default</source>
+ <translation>預設</translation>
+ </message>
+</context>
+<context>
<name>ConfigureNetwork</name>
<message>
<location filename="../../src/yuzu/configuration/configure_network.ui" line="14"/>
@@ -3163,47 +3258,47 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
<translation>出版商</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="59"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
<source>Add-Ons</source>
<translation>延伸模組</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
<source>General</source>
<translation>一般</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="61"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
<source>System</source>
<translation>系統</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
<source>CPU</source>
<translation>CPU</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="63"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
<source>Graphics</source>
<translation>圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="67"/>
<source>Adv. Graphics</source>
<translation>進階圖形</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="68"/>
<source>Audio</source>
<translation>音訊</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="66"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
<source>Input Profiles</source>
- <translation>输入配置文件</translation>
+ <translation>輸入設定檔</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_per_game.cpp" line="72"/>
<source>Properties</source>
<translation>屬性</translation>
</message>
@@ -3406,8 +3501,8 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="26"/>
- <source>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</source>
- <translation>如果您想使用这个控制器,请在游戏开始前为玩家 1 配置使用右控制器,玩家 2 使用双 joycon 控制器,从而允许该控制器被正确检测。</translation>
+ <source>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</source>
+ <translation>要使用健身环控制器,请在游戏开始前将玩家 1 设置使用右 Joy-Con控制器(包括物理和模拟层面),玩家 2 使用左 Joy-Con 控制器(物理和模拟层面)。</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="52"/>
@@ -3443,9 +3538,9 @@ UUID: %2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="300"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="314"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="317"/>
<source>Enable</source>
- <translation>启用</translation>
+ <translation>啟用</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.ui" line="307"/>
@@ -3510,12 +3605,17 @@ UUID: %2</translation>
<translation>当前映射的设备未连接健身环控制器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="310"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="309"/>
+ <source>The current mapped device is not connected</source>
+ <translation>当前映射的设备未连接</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="313"/>
<source>Unexpected driver result %1</source>
<translation>意外的驱动结果: %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="333"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="336"/>
<source>[waiting]</source>
<translation>[請按按鍵]</translation>
</message>
@@ -3921,7 +4021,7 @@ UUID: %2</translation>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="438"/>
<source>Device Name</source>
- <translation>设备名称</translation>
+ <translation>裝置名稱</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_system.ui" line="484"/>
@@ -4074,7 +4174,7 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="195"/>
<source>Enter the name for the new profile.</source>
- <translation>輸入新設定檔的名稱</translation>
+ <translation>輸入新設定檔的名稱。</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="206"/>
@@ -4571,12 +4671,12 @@ Drag points to change position, or double-click table cells to edit values.</sou
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="14"/>
<source>Direct Connect</source>
- <translation>直接连接</translation>
+ <translation>直接連線</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="47"/>
<source>Server Address</source>
- <translation>服务器地址</translation>
+ <translation>伺服器地址</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/direct_connect.ui" line="54"/>
@@ -4625,961 +4725,900 @@ Drag points to change position, or double-click table cells to edit values.</sou
<context>
<name>GMainWindow</name>
<message>
- <location filename="../../src/yuzu/main.cpp" line="198"/>
+ <location filename="../../src/yuzu/main.cpp" line="199"/>
<source>&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;Anonymous data is collected&lt;/a&gt; to help improve yuzu. &lt;br/&gt;&lt;br/&gt;Would you like to share your usage data with us?</source>
<translation>我們&lt;a href=&apos;https://yuzu-emu.org/help/feature/telemetry/&apos;&gt;蒐集匿名的資料&lt;/a&gt;以幫助改善 yuzu。&lt;br/&gt;&lt;br/&gt;您願意和我們分享您的使用資料嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="201"/>
+ <location filename="../../src/yuzu/main.cpp" line="202"/>
<source>Telemetry</source>
<translation>遙測</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="433"/>
+ <location filename="../../src/yuzu/main.cpp" line="434"/>
<source>Broken Vulkan Installation Detected</source>
<translation>检测到 Vulkan 的安装已损坏</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="434"/>
+ <location filename="../../src/yuzu/main.cpp" line="435"/>
<source>Vulkan initialization failed during boot.&lt;br&gt;&lt;br&gt;Click &lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;here for instructions to fix the issue&lt;/a&gt;.</source>
<translation>Vulkan 初始化失败。&lt;br&gt;&lt;br&gt;点击&lt;a href=&apos;https://yuzu-emu.org/wiki/faq/#yuzu-starts-with-the-error-broken-vulkan-installation-detected&apos;&gt;这里&lt;/a&gt;获取此问题的相关信息。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="825"/>
+ <location filename="../../src/yuzu/main.cpp" line="455"/>
+ <source>Running a game</source>
+ <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
+ <translation>游戏正在运行</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="836"/>
<source>Loading Web Applet...</source>
<translation>載入 Web Applet...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="875"/>
- <location filename="../../src/yuzu/main.cpp" line="878"/>
+ <location filename="../../src/yuzu/main.cpp" line="886"/>
+ <location filename="../../src/yuzu/main.cpp" line="889"/>
<source>Disable Web Applet</source>
<translation>停用 Web Applet</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="879"/>
+ <location filename="../../src/yuzu/main.cpp" line="890"/>
<source>Disabling the web applet can lead to undefined behavior and should only be used with Super Mario 3D All-Stars. Are you sure you want to disable the web applet?
(This can be re-enabled in the Debug settings.)</source>
<translation>禁用 Web 应用程序可能会导致未知的行为,且只能在《超级马里奥 3D 全明星》中使用。您确定要禁用 Web 应用程序吗?
(您可以在调试选项中重新启用它。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="995"/>
+ <location filename="../../src/yuzu/main.cpp" line="1006"/>
<source>The amount of shaders currently being built</source>
<translation>目前正在建構的著色器數量</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="997"/>
+ <location filename="../../src/yuzu/main.cpp" line="1008"/>
<source>The current selected resolution scaling multiplier.</source>
<translation>目前選擇的解析度縮放比例。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1000"/>
+ <location filename="../../src/yuzu/main.cpp" line="1011"/>
<source>Current emulation speed. Values higher or lower than 100% indicate emulation is running faster or slower than a Switch.</source>
<translation>目前的模擬速度。高於或低於 100% 表示比實際 Switch 執行速度更快或更慢。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1003"/>
+ <location filename="../../src/yuzu/main.cpp" line="1014"/>
<source>How many frames per second the game is currently displaying. This will vary from game to game and scene to scene.</source>
<translation>遊戲即時 FPS。會因遊戲和場景的不同而改變。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1007"/>
+ <location filename="../../src/yuzu/main.cpp" line="1018"/>
<source>Time taken to emulate a Switch frame, not counting framelimiting or v-sync. For full-speed emulation this should be at most 16.67 ms.</source>
<translation>在不考慮幀數限制和垂直同步的情況下模擬一個 Switch 畫格的實際時間,若要全速模擬,此數值不得超過 16.67 毫秒。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1157"/>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Unmute</source>
+ <translation>取消靜音</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1073"/>
+ <source>Mute</source>
+ <translation>靜音</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1078"/>
+ <source>Reset Volume</source>
+ <translation>重設音量</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/main.cpp" line="1263"/>
<source>&amp;Clear Recent Files</source>
<translation>清除最近的檔案(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1239"/>
+ <location filename="../../src/yuzu/main.cpp" line="1345"/>
<source>Emulated mouse is enabled</source>
- <translation>已启用模拟鼠标</translation>
+ <translation>模擬滑鼠已啟用</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1240"/>
+ <location filename="../../src/yuzu/main.cpp" line="1346"/>
<source>Real mouse input and mouse panning are incompatible. Please disable the emulated mouse in input advanced settings to allow mouse panning.</source>
<translation>实体鼠标输入与鼠标平移不兼容。请在高级输入设置中禁用模拟鼠标以使用鼠标平移。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1462"/>
+ <location filename="../../src/yuzu/main.cpp" line="1568"/>
<source>&amp;Continue</source>
<translation>繼續(&amp;C)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1464"/>
+ <location filename="../../src/yuzu/main.cpp" line="1570"/>
<source>&amp;Pause</source>
<translation>&amp;暫停</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1544"/>
- <source>yuzu is running a game</source>
- <extracomment>TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the computer from sleeping</extracomment>
- <translation>yuzu 正在執行中</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="1677"/>
+ <location filename="../../src/yuzu/main.cpp" line="1735"/>
<source>Warning Outdated Game Format</source>
<translation>過時遊戲格式警告</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1678"/>
+ <location filename="../../src/yuzu/main.cpp" line="1736"/>
<source>You are using the deconstructed ROM directory format for this game, which is an outdated format that has been superseded by others such as NCA, NAX, XCI, or NSP. Deconstructed ROM directories lack icons, metadata, and update support.&lt;br&gt;&lt;br&gt;For an explanation of the various Switch formats yuzu supports, &lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;check out our wiki&lt;/a&gt;. This message will not be shown again.</source>
<translation>此遊戲為解構的 ROM 資料夾格式,這是一種過時的格式,已被其他格式取代,如 NCA、NAX、XCI、NSP。解構的 ROM 目錄缺少圖示、中繼資料和更新支援。&lt;br&gt;&lt;br&gt;有關 yuzu 支援的各種 Switch 格式說明,&lt;a href=&apos;https://yuzu-emu.org/wiki/overview-of-switch-game-formats&apos;&gt;請參閱我們的 wiki &lt;/a&gt;。此訊息將不再顯示。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1690"/>
- <location filename="../../src/yuzu/main.cpp" line="1724"/>
+ <location filename="../../src/yuzu/main.cpp" line="1748"/>
+ <location filename="../../src/yuzu/main.cpp" line="1782"/>
<source>Error while loading ROM!</source>
<translation>載入 ROM 時發生錯誤!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1691"/>
+ <location filename="../../src/yuzu/main.cpp" line="1749"/>
<source>The ROM format is not supported.</source>
<translation>此 ROM 格式不支援</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1695"/>
+ <location filename="../../src/yuzu/main.cpp" line="1753"/>
<source>An error occurred initializing the video core.</source>
<translation>初始化視訊核心時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1696"/>
+ <location filename="../../src/yuzu/main.cpp" line="1754"/>
<source>yuzu has encountered an error while running the video core. This is usually caused by outdated GPU drivers, including integrated ones. Please see the log for more details. For more information on accessing the log, please see the following page: &lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;How to Upload the Log File&lt;/a&gt;. </source>
<translation>yuzu 在執行視訊核心時發生錯誤。 這可能是 GPU 驅動程序過舊造成的。 詳細資訊請查閱日誌檔案。 關於日誌檔案的更多資訊,請參考以下頁面:&lt;a href=&apos;https://yuzu-emu.org/help/reference/log-files/&apos;&gt;如何上傳日誌檔案&lt;/a&gt;。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1711"/>
+ <location filename="../../src/yuzu/main.cpp" line="1769"/>
<source>Error while loading ROM! %1</source>
<comment>%1 signifies a numeric error code.</comment>
<translation>載入 ROM 時發生錯誤!%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1714"/>
+ <location filename="../../src/yuzu/main.cpp" line="1772"/>
<source>%1&lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to redump your files.&lt;br&gt;You can refer to the yuzu wiki&lt;/a&gt; or the yuzu Discord&lt;/a&gt; for help.</source>
<comment>%1 signifies an error string.</comment>
<translation>%1&lt;br&gt;請參閱 &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速指引&lt;/a&gt;以重新傾印檔案。&lt;br&gt;您可以前往 yuzu 的 wiki&lt;/a&gt; 或 Discord 社群&lt;/a&gt;以獲得幫助。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1725"/>
+ <location filename="../../src/yuzu/main.cpp" line="1783"/>
<source>An unknown error occurred. Please see the log for more details.</source>
<translation>發生未知錯誤,請檢視紀錄了解細節。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(64-bit)</source>
<translation>(64-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1867"/>
+ <location filename="../../src/yuzu/main.cpp" line="1926"/>
<source>(32-bit)</source>
<translation>(32-bit)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1868"/>
+ <location filename="../../src/yuzu/main.cpp" line="1927"/>
<source>%1 %2</source>
<comment>%1 is the title name. %2 indicates if the title is 64-bit or 32-bit</comment>
<translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="1926"/>
+ <location filename="../../src/yuzu/main.cpp" line="1985"/>
<source>Closing software...</source>
- <translation>正在关闭…</translation>
+ <translation>正在關閉軟體…</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2075"/>
+ <location filename="../../src/yuzu/main.cpp" line="2137"/>
<source>Save Data</source>
<translation>儲存資料</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2131"/>
+ <location filename="../../src/yuzu/main.cpp" line="2193"/>
<source>Mod Data</source>
<translation>模組資料</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2144"/>
+ <location filename="../../src/yuzu/main.cpp" line="2206"/>
<source>Error Opening %1 Folder</source>
<translation>開啟資料夾 %1 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2145"/>
- <location filename="../../src/yuzu/main.cpp" line="2747"/>
+ <location filename="../../src/yuzu/main.cpp" line="2207"/>
+ <location filename="../../src/yuzu/main.cpp" line="2809"/>
<source>Folder does not exist!</source>
<translation>資料夾不存在</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2157"/>
+ <location filename="../../src/yuzu/main.cpp" line="2219"/>
<source>Error Opening Transferable Shader Cache</source>
<translation>開啟通用著色器快取位置時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2158"/>
+ <location filename="../../src/yuzu/main.cpp" line="2220"/>
<source>Failed to create the shader cache directory for this title.</source>
<translation>無法新增此遊戲的著色器快取資料夾。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2209"/>
+ <location filename="../../src/yuzu/main.cpp" line="2271"/>
<source>Error Removing Contents</source>
- <translation>删除内容时出错</translation>
+ <translation>移除內容時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2211"/>
+ <location filename="../../src/yuzu/main.cpp" line="2273"/>
<source>Error Removing Update</source>
- <translation>删除更新时出错</translation>
+ <translation>移除更新時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2213"/>
+ <location filename="../../src/yuzu/main.cpp" line="2275"/>
<source>Error Removing DLC</source>
- <translation>删除 DLC 时出错</translation>
+ <translation>移除 DLC 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2222"/>
+ <location filename="../../src/yuzu/main.cpp" line="2284"/>
<source>Remove Installed Game Contents?</source>
- <translation>删除已安装的游戏内容?</translation>
+ <translation>移除已安裝的遊戲內容?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2224"/>
+ <location filename="../../src/yuzu/main.cpp" line="2286"/>
<source>Remove Installed Game Update?</source>
- <translation>删除已安装的游戏更新?</translation>
+ <translation>移除已安裝的遊戲更新?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2226"/>
+ <location filename="../../src/yuzu/main.cpp" line="2288"/>
<source>Remove Installed Game DLC?</source>
- <translation>删除已安装的游戏 DLC 内容?</translation>
+ <translation>移除已安裝的遊戲 DLC?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2232"/>
+ <location filename="../../src/yuzu/main.cpp" line="2294"/>
<source>Remove Entry</source>
<translation>移除項目</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2263"/>
- <location filename="../../src/yuzu/main.cpp" line="2279"/>
- <location filename="../../src/yuzu/main.cpp" line="2310"/>
- <location filename="../../src/yuzu/main.cpp" line="2378"/>
- <location filename="../../src/yuzu/main.cpp" line="2412"/>
- <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2341"/>
+ <location filename="../../src/yuzu/main.cpp" line="2372"/>
+ <location filename="../../src/yuzu/main.cpp" line="2440"/>
+ <location filename="../../src/yuzu/main.cpp" line="2474"/>
+ <location filename="../../src/yuzu/main.cpp" line="2497"/>
<source>Successfully Removed</source>
<translation>移除成功</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2264"/>
+ <location filename="../../src/yuzu/main.cpp" line="2326"/>
<source>Successfully removed the installed base game.</source>
<translation>成功移除已安裝的遊戲。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2268"/>
+ <location filename="../../src/yuzu/main.cpp" line="2330"/>
<source>The base game is not installed in the NAND and cannot be removed.</source>
<translation>此遊戲並非安裝在內部儲存空間,因此無法移除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2280"/>
+ <location filename="../../src/yuzu/main.cpp" line="2342"/>
<source>Successfully removed the installed update.</source>
<translation>成功移除已安裝的遊戲更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2283"/>
+ <location filename="../../src/yuzu/main.cpp" line="2345"/>
<source>There is no update installed for this title.</source>
<translation>此遊戲沒有已安裝的更新。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2306"/>
+ <location filename="../../src/yuzu/main.cpp" line="2368"/>
<source>There are no DLC installed for this title.</source>
<translation>此遊戲沒有已安裝的 DLC。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2311"/>
+ <location filename="../../src/yuzu/main.cpp" line="2373"/>
<source>Successfully removed %1 installed DLC.</source>
<translation>成功移除遊戲 %1 已安裝的 DLC。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2319"/>
+ <location filename="../../src/yuzu/main.cpp" line="2381"/>
<source>Delete OpenGL Transferable Shader Cache?</source>
<translation>刪除 OpenGL 模式的著色器快取?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2321"/>
+ <location filename="../../src/yuzu/main.cpp" line="2383"/>
<source>Delete Vulkan Transferable Shader Cache?</source>
<translation>刪除 Vulkan 模式的著色器快取?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2323"/>
+ <location filename="../../src/yuzu/main.cpp" line="2385"/>
<source>Delete All Transferable Shader Caches?</source>
<translation>刪除所有的著色器快取?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2325"/>
+ <location filename="../../src/yuzu/main.cpp" line="2387"/>
<source>Remove Custom Game Configuration?</source>
<translation>移除額外遊戲設定?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2327"/>
+ <location filename="../../src/yuzu/main.cpp" line="2389"/>
<source>Remove Cache Storage?</source>
- <translation>移除缓存?</translation>
+ <translation>移除快取儲存空間?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2333"/>
+ <location filename="../../src/yuzu/main.cpp" line="2395"/>
<source>Remove File</source>
<translation>刪除檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2373"/>
- <location filename="../../src/yuzu/main.cpp" line="2381"/>
+ <location filename="../../src/yuzu/main.cpp" line="2435"/>
+ <location filename="../../src/yuzu/main.cpp" line="2443"/>
<source>Error Removing Transferable Shader Cache</source>
<translation>刪除通用著色器快取時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2374"/>
- <location filename="../../src/yuzu/main.cpp" line="2408"/>
+ <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2470"/>
<source>A shader cache for this title does not exist.</source>
<translation>此遊戲沒有著色器快取</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2379"/>
+ <location filename="../../src/yuzu/main.cpp" line="2441"/>
<source>Successfully removed the transferable shader cache.</source>
<translation>成功刪除著色器快取。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2382"/>
+ <location filename="../../src/yuzu/main.cpp" line="2444"/>
<source>Failed to remove the transferable shader cache.</source>
<translation>刪除通用著色器快取失敗。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2397"/>
+ <location filename="../../src/yuzu/main.cpp" line="2459"/>
<source>Error Removing Vulkan Driver Pipeline Cache</source>
- <translation>移除 Vulkan 驱动程序管线缓存时出错</translation>
+ <translation>移除 Vulkan 驅動程式管線快取時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2398"/>
+ <location filename="../../src/yuzu/main.cpp" line="2460"/>
<source>Failed to remove the driver pipeline cache.</source>
- <translation>删除驱动程序管线缓存失败。</translation>
+ <translation>無法移除驅動程式管線快取。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2407"/>
- <location filename="../../src/yuzu/main.cpp" line="2415"/>
+ <location filename="../../src/yuzu/main.cpp" line="2469"/>
+ <location filename="../../src/yuzu/main.cpp" line="2477"/>
<source>Error Removing Transferable Shader Caches</source>
<translation>刪除通用著色器快取時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2413"/>
+ <location filename="../../src/yuzu/main.cpp" line="2475"/>
<source>Successfully removed the transferable shader caches.</source>
<translation>成功刪除通用著色器快取。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2416"/>
+ <location filename="../../src/yuzu/main.cpp" line="2478"/>
<source>Failed to remove the transferable shader cache directory.</source>
<translation>無法刪除著色器快取資料夾。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2429"/>
- <location filename="../../src/yuzu/main.cpp" line="2438"/>
+ <location filename="../../src/yuzu/main.cpp" line="2491"/>
+ <location filename="../../src/yuzu/main.cpp" line="2500"/>
<source>Error Removing Custom Configuration</source>
<translation>移除額外遊戲設定時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2430"/>
+ <location filename="../../src/yuzu/main.cpp" line="2492"/>
<source>A custom configuration for this title does not exist.</source>
<translation>此遊戲沒有額外設定。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2436"/>
+ <location filename="../../src/yuzu/main.cpp" line="2498"/>
<source>Successfully removed the custom game configuration.</source>
<translation>成功移除額外遊戲設定。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2439"/>
+ <location filename="../../src/yuzu/main.cpp" line="2501"/>
<source>Failed to remove the custom game configuration.</source>
<translation>移除額外遊戲設定失敗。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2461"/>
- <location filename="../../src/yuzu/main.cpp" line="2540"/>
+ <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2602"/>
<source>RomFS Extraction Failed!</source>
<translation>RomFS 抽取失敗!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2462"/>
+ <location filename="../../src/yuzu/main.cpp" line="2524"/>
<source>There was an error copying the RomFS files or the user cancelled the operation.</source>
<translation>複製 RomFS 檔案時發生錯誤或使用者取消動作。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Full</source>
<translation>全部</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2520"/>
+ <location filename="../../src/yuzu/main.cpp" line="2582"/>
<source>Skeleton</source>
<translation>部分</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2522"/>
+ <location filename="../../src/yuzu/main.cpp" line="2584"/>
<source>Select RomFS Dump Mode</source>
<translation>選擇RomFS傾印模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2523"/>
+ <location filename="../../src/yuzu/main.cpp" line="2585"/>
<source>Please select the how you would like the RomFS dumped.&lt;br&gt;Full will copy all of the files into the new directory while &lt;br&gt;skeleton will only create the directory structure.</source>
<translation>請選擇如何傾印 RomFS。&lt;br&gt;「全部」會複製所有檔案到新資料夾中,而&lt;br&gt;「部分」只會建立資料夾結構。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2541"/>
+ <location filename="../../src/yuzu/main.cpp" line="2603"/>
<source>There is not enough free space at %1 to extract the RomFS. Please free up space or select a different dump directory at Emulation &gt; Configure &gt; System &gt; Filesystem &gt; Dump Root</source>
<translation>%1 沒有足夠的空間用於抽取 RomFS。請確保有足夠的空間或於模擬 &gt; 設定 &gt;系統 &gt;檔案系統 &gt; 傾印根目錄中選擇其他資料夾。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
<source>Extracting RomFS...</source>
<translation>抽取 RomFS 中...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2548"/>
- <location filename="../../src/yuzu/main.cpp" line="2885"/>
+ <location filename="../../src/yuzu/main.cpp" line="2610"/>
+ <location filename="../../src/yuzu/main.cpp" line="2947"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2555"/>
+ <location filename="../../src/yuzu/main.cpp" line="2617"/>
<source>RomFS Extraction Succeeded!</source>
<translation>RomFS 抽取完成!</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2556"/>
+ <location filename="../../src/yuzu/main.cpp" line="2618"/>
<source>The operation completed successfully.</source>
<translation>動作已成功完成</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2600"/>
- <location filename="../../src/yuzu/main.cpp" line="2624"/>
- <location filename="../../src/yuzu/main.cpp" line="2634"/>
- <location filename="../../src/yuzu/main.cpp" line="2716"/>
- <location filename="../../src/yuzu/main.cpp" line="2724"/>
+ <location filename="../../src/yuzu/main.cpp" line="2662"/>
+ <location filename="../../src/yuzu/main.cpp" line="2686"/>
+ <location filename="../../src/yuzu/main.cpp" line="2696"/>
+ <location filename="../../src/yuzu/main.cpp" line="2778"/>
+ <location filename="../../src/yuzu/main.cpp" line="2786"/>
<source>Create Shortcut</source>
- <translation>创建快捷方式</translation>
+ <translation>建立捷徑</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2601"/>
+ <location filename="../../src/yuzu/main.cpp" line="2663"/>
<source>This will create a shortcut to the current AppImage. This may not work well if you update. Continue?</source>
- <translation>这将为当前的软件镜像创建快捷方式。但在其更新后,快捷方式可能无法正常使用。是否继续?</translation>
+ <translation>這將會為目前的應用程式映像建立捷徑,可能在其更新後無法運作,仍要繼續嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2625"/>
+ <location filename="../../src/yuzu/main.cpp" line="2687"/>
<source>Cannot create shortcut on desktop. Path &quot;%1&quot; does not exist.</source>
- <translation>无法在桌面创建快捷方式。路径“ %1 ”不存在。</translation>
+ <translation>無法在桌面上建立捷徑,路徑「%1」不存在。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2635"/>
+ <location filename="../../src/yuzu/main.cpp" line="2697"/>
<source>Cannot create shortcut in applications menu. Path &quot;%1&quot; does not exist and cannot be created.</source>
- <translation>无法在应用程序菜单中创建快捷方式。路径“ %1 ”不存在且无法被创建。</translation>
+ <translation>無法在應用程式選單中建立捷徑,路徑「%1」不存在且無法建立。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2652"/>
+ <location filename="../../src/yuzu/main.cpp" line="2714"/>
<source>Create Icon</source>
- <translation>创建图标</translation>
+ <translation>建立圖示</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2653"/>
+ <location filename="../../src/yuzu/main.cpp" line="2715"/>
<source>Cannot create icon file. Path &quot;%1&quot; does not exist and cannot be created.</source>
- <translation>无法创建图标文件。路径“ %1 ”不存在且无法被创建。</translation>
+ <translation>無法建立圖示檔案,路徑「%1」不存在且無法建立。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2704"/>
+ <location filename="../../src/yuzu/main.cpp" line="2766"/>
<source>Start %1 with the yuzu Emulator</source>
- <translation>使用 yuzu 启动 %1</translation>
+ <translation>使用 yuzu 模擬器啟動 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2717"/>
+ <location filename="../../src/yuzu/main.cpp" line="2779"/>
<source>Failed to create a shortcut at %1</source>
- <translation>在 %1 处创建快捷方式时失败</translation>
+ <translation>無法在 %1 建立捷徑</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2725"/>
+ <location filename="../../src/yuzu/main.cpp" line="2787"/>
<source>Successfully created a shortcut to %1</source>
- <translation>成功地在 %1 处创建快捷方式</translation>
+ <translation>已成功在 %1 建立捷徑</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2746"/>
+ <location filename="../../src/yuzu/main.cpp" line="2808"/>
<source>Error Opening %1</source>
<translation>開啟 %1 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2755"/>
+ <location filename="../../src/yuzu/main.cpp" line="2817"/>
<source>Select Directory</source>
<translation>選擇資料夾</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2784"/>
+ <location filename="../../src/yuzu/main.cpp" line="2846"/>
<source>Properties</source>
<translation>屬性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2785"/>
+ <location filename="../../src/yuzu/main.cpp" line="2847"/>
<source>The game properties could not be loaded.</source>
<translation>無法載入遊戲屬性</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2802"/>
+ <location filename="../../src/yuzu/main.cpp" line="2864"/>
<source>Switch Executable (%1);;All Files (*.*)</source>
<comment>%1 is an identifier for the Switch executable file extensions.</comment>
<translation>Switch 執行檔 (%1);;所有檔案 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2806"/>
+ <location filename="../../src/yuzu/main.cpp" line="2868"/>
<source>Load File</source>
<translation>開啟檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2819"/>
+ <location filename="../../src/yuzu/main.cpp" line="2881"/>
<source>Open Extracted ROM Directory</source>
<translation>開啟已抽取的 ROM 資料夾</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2830"/>
+ <location filename="../../src/yuzu/main.cpp" line="2892"/>
<source>Invalid Directory Selected</source>
<translation>選擇的資料夾無效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2831"/>
+ <location filename="../../src/yuzu/main.cpp" line="2893"/>
<source>The directory you have selected does not contain a &apos;main&apos; file.</source>
<translation>選擇的資料夾未包含「main」檔案。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2841"/>
+ <location filename="../../src/yuzu/main.cpp" line="2903"/>
<source>Installable Switch File (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX Cartridge Image (*.xci)</source>
<translation>可安装的 Switch 檔案 (*.nca *.nsp *.xci);;Nintendo Content Archive (*.nca);;Nintendo Submission Package (*.nsp);;NX 卡帶映像 (*.xci)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2846"/>
+ <location filename="../../src/yuzu/main.cpp" line="2908"/>
<source>Install Files</source>
<translation>安裝檔案</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2892"/>
+ <location filename="../../src/yuzu/main.cpp" line="2954"/>
<source>%n file(s) remaining</source>
<translation><numerusform>剩餘 %n 個檔案</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2894"/>
+ <location filename="../../src/yuzu/main.cpp" line="2956"/>
<source>Installing file &quot;%1&quot;...</source>
<translation>正在安裝檔案「%1」...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2940"/>
- <location filename="../../src/yuzu/main.cpp" line="2954"/>
+ <location filename="../../src/yuzu/main.cpp" line="3002"/>
+ <location filename="../../src/yuzu/main.cpp" line="3016"/>
<source>Install Results</source>
<translation>安裝結果</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="2941"/>
+ <location filename="../../src/yuzu/main.cpp" line="3003"/>
<source>To avoid possible conflicts, we discourage users from installing base games to the NAND.
Please, only use this feature to install updates and DLC.</source>
<translation>為了避免潛在的衝突,不建議將遊戲本體安裝至內部儲存空間。
此功能僅用於安裝遊戲更新和 DLC。</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2947"/>
+ <location filename="../../src/yuzu/main.cpp" line="3009"/>
<source>%n file(s) were newly installed
</source>
<translation><numerusform>最近安裝了 %n 個檔案
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2950"/>
+ <location filename="../../src/yuzu/main.cpp" line="3012"/>
<source>%n file(s) were overwritten
</source>
<translation><numerusform>%n 個檔案被取代
</numerusform></translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="2952"/>
+ <location filename="../../src/yuzu/main.cpp" line="3014"/>
<source>%n file(s) failed to install
</source>
<translation><numerusform>%n 個檔案安裝失敗</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3053"/>
+ <location filename="../../src/yuzu/main.cpp" line="3115"/>
<source>System Application</source>
<translation>系統應用程式</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3054"/>
+ <location filename="../../src/yuzu/main.cpp" line="3116"/>
<source>System Archive</source>
<translation>系統檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3055"/>
+ <location filename="../../src/yuzu/main.cpp" line="3117"/>
<source>System Application Update</source>
<translation>系統應用程式更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3056"/>
+ <location filename="../../src/yuzu/main.cpp" line="3118"/>
<source>Firmware Package (Type A)</source>
<translation>韌體包(A型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3057"/>
+ <location filename="../../src/yuzu/main.cpp" line="3119"/>
<source>Firmware Package (Type B)</source>
<translation>韌體包(B型)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3058"/>
+ <location filename="../../src/yuzu/main.cpp" line="3120"/>
<source>Game</source>
<translation>遊戲</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3059"/>
+ <location filename="../../src/yuzu/main.cpp" line="3121"/>
<source>Game Update</source>
<translation>遊戲更新</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3060"/>
+ <location filename="../../src/yuzu/main.cpp" line="3122"/>
<source>Game DLC</source>
<translation>遊戲 DLC</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3061"/>
+ <location filename="../../src/yuzu/main.cpp" line="3123"/>
<source>Delta Title</source>
<translation>Delta Title</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3064"/>
+ <location filename="../../src/yuzu/main.cpp" line="3126"/>
<source>Select NCA Install Type...</source>
<translation>選擇 NCA 安裝類型...</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3065"/>
+ <location filename="../../src/yuzu/main.cpp" line="3127"/>
<source>Please select the type of title you would like to install this NCA as:
(In most instances, the default &apos;Game&apos; is fine.)</source>
<translation>請選擇此 NCA 的安裝類型:
(在多數情況下,選擇預設的「遊戲」即可。)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3071"/>
+ <location filename="../../src/yuzu/main.cpp" line="3133"/>
<source>Failed to Install</source>
<translation>安裝失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3072"/>
+ <location filename="../../src/yuzu/main.cpp" line="3134"/>
<source>The title type you selected for the NCA is invalid.</source>
<translation>選擇的 NCA 安裝類型無效。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3107"/>
+ <location filename="../../src/yuzu/main.cpp" line="3169"/>
<source>File not found</source>
<translation>找不到檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3108"/>
+ <location filename="../../src/yuzu/main.cpp" line="3170"/>
<source>File &quot;%1&quot; not found</source>
<translation>找不到「%1」檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3185"/>
+ <location filename="../../src/yuzu/main.cpp" line="3247"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3211"/>
- <location filename="../../src/yuzu/main.cpp" line="3230"/>
+ <location filename="../../src/yuzu/main.cpp" line="3273"/>
+ <location filename="../../src/yuzu/main.cpp" line="3292"/>
<source>Hardware requirements not met</source>
- <translation>硬件不满足要求</translation>
+ <translation>硬體不符合需求</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3212"/>
- <location filename="../../src/yuzu/main.cpp" line="3231"/>
+ <location filename="../../src/yuzu/main.cpp" line="3274"/>
+ <location filename="../../src/yuzu/main.cpp" line="3293"/>
<source>Your system does not meet the recommended hardware requirements. Compatibility reporting has been disabled.</source>
- <translation>您的系统不满足运行 yuzu 推荐的推荐配置。兼容性报告已被禁用。</translation>
+ <translation>您的系統不符合建議的硬體需求,相容性回報已停用。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3223"/>
+ <location filename="../../src/yuzu/main.cpp" line="3285"/>
<source>Missing yuzu Account</source>
<translation>未設定 yuzu 帳號</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3224"/>
+ <location filename="../../src/yuzu/main.cpp" line="3286"/>
<source>In order to submit a game compatibility test case, you must link your yuzu account.&lt;br&gt;&lt;br/&gt;To link your yuzu account, go to Emulation &amp;gt; Configuration &amp;gt; Web.</source>
<translation>為了上傳相容性測試結果,您必須登入 yuzu 帳號。&lt;br&gt;&lt;br/&gt;欲登入 yuzu 帳號請至模擬 &amp;gt; 設定 &amp;gt; 網路。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3239"/>
+ <location filename="../../src/yuzu/main.cpp" line="3301"/>
<source>Error opening URL</source>
<translation>開啟 URL 時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3240"/>
+ <location filename="../../src/yuzu/main.cpp" line="3302"/>
<source>Unable to open the URL &quot;%1&quot;.</source>
<translation>無法開啟 URL:「%1」。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3543"/>
+ <location filename="../../src/yuzu/main.cpp" line="3607"/>
<source>TAS Recording</source>
<translation>TAS 錄製</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3544"/>
+ <location filename="../../src/yuzu/main.cpp" line="3608"/>
<source>Overwrite file of player 1?</source>
<translation>覆寫玩家 1 的檔案?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3570"/>
+ <location filename="../../src/yuzu/main.cpp" line="3634"/>
<source>Invalid config detected</source>
<translation>偵測到無效設定</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3571"/>
+ <location filename="../../src/yuzu/main.cpp" line="3635"/>
<source>Handheld controller can&apos;t be used on docked mode. Pro controller will be selected.</source>
<translation>掌機手把無法在主機模式中使用。將會選擇 Pro 手把。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>Amiibo</source>
<translation>Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3741"/>
- <location filename="../../src/yuzu/main.cpp" line="3769"/>
+ <location filename="../../src/yuzu/main.cpp" line="3805"/>
+ <location filename="../../src/yuzu/main.cpp" line="3833"/>
<source>The current amiibo has been removed</source>
- <translation>当前的 Amiibo 已被移除。</translation>
+ <translation>目前 Amiibo 已被移除。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
<source>Error</source>
- <translation>错误</translation>
+ <translation>錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3746"/>
- <location filename="../../src/yuzu/main.cpp" line="3781"/>
+ <location filename="../../src/yuzu/main.cpp" line="3810"/>
+ <location filename="../../src/yuzu/main.cpp" line="3845"/>
<source>The current game is not looking for amiibos</source>
- <translation>当前游戏并没有在寻找 Amiibos</translation>
+ <translation>目前遊戲並未在尋找 Amiibos</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3752"/>
+ <location filename="../../src/yuzu/main.cpp" line="3816"/>
<source>Amiibo File (%1);; All Files (*.*)</source>
<translation>Amiibo 檔案 (%1);; 所有檔案 (*.*)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3753"/>
+ <location filename="../../src/yuzu/main.cpp" line="3817"/>
<source>Load Amiibo</source>
<translation>開啟 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3765"/>
+ <location filename="../../src/yuzu/main.cpp" line="3829"/>
<source>Error loading Amiibo data</source>
<translation>載入 Amiibo 資料時發生錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3775"/>
+ <location filename="../../src/yuzu/main.cpp" line="3839"/>
<source>The selected file is not a valid amiibo</source>
- <translation>选择的文件并不是有效的 amiibo</translation>
+ <translation>選取的檔案不是有效的 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3778"/>
+ <location filename="../../src/yuzu/main.cpp" line="3842"/>
<source>The selected file is already on use</source>
- <translation>选择的文件已在使用中</translation>
+ <translation>選取的檔案已在使用中</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3784"/>
+ <location filename="../../src/yuzu/main.cpp" line="3848"/>
<source>An unknown error occurred</source>
- <translation>发生了未知错误</translation>
+ <translation>發生了未知錯誤</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3836"/>
+ <location filename="../../src/yuzu/main.cpp" line="3900"/>
<source>Capture Screenshot</source>
<translation>截圖</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3837"/>
+ <location filename="../../src/yuzu/main.cpp" line="3901"/>
<source>PNG Image (*.png)</source>
<translation>PNG 圖片 (*.png)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3920"/>
+ <location filename="../../src/yuzu/main.cpp" line="3984"/>
<source>TAS state: Running %1/%2</source>
<translation>TAS 狀態:正在執行 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3924"/>
+ <location filename="../../src/yuzu/main.cpp" line="3988"/>
<source>TAS state: Recording %1</source>
<translation>TAS 狀態:正在錄製 %1</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3926"/>
+ <location filename="../../src/yuzu/main.cpp" line="3990"/>
<source>TAS state: Idle %1/%2</source>
<translation>TAS 狀態:閒置 %1/%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3930"/>
+ <location filename="../../src/yuzu/main.cpp" line="3994"/>
<source>TAS State: Invalid</source>
<translation>TAS 狀態:無效</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Stop Running</source>
<translation>&amp;停止執行</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3944"/>
+ <location filename="../../src/yuzu/main.cpp" line="4008"/>
<source>&amp;Start</source>
<translation>開始(&amp;S)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>Stop R&amp;ecording</source>
<translation>停止錄製</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3945"/>
+ <location filename="../../src/yuzu/main.cpp" line="4009"/>
<source>R&amp;ecord</source>
<translation>錄製 (&amp;E)</translation>
</message>
<message numerus="yes">
- <location filename="../../src/yuzu/main.cpp" line="3969"/>
+ <location filename="../../src/yuzu/main.cpp" line="4033"/>
<source>Building: %n shader(s)</source>
<translation><numerusform>正在編譯 %n 個著色器檔案</numerusform></translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3978"/>
+ <location filename="../../src/yuzu/main.cpp" line="4042"/>
<source>Scale: %1x</source>
<comment>%1 is the resolution scaling factor</comment>
<translation>縮放比例:%1x</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3981"/>
+ <location filename="../../src/yuzu/main.cpp" line="4045"/>
<source>Speed: %1% / %2%</source>
<translation>速度:%1% / %2%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3985"/>
+ <location filename="../../src/yuzu/main.cpp" line="4049"/>
<source>Speed: %1%</source>
<translation>速度:%1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3989"/>
+ <location filename="../../src/yuzu/main.cpp" line="4053"/>
<source>Game: %1 FPS (Unlocked)</source>
<translation>遊戲: %1 FPS(未限制)</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3992"/>
+ <location filename="../../src/yuzu/main.cpp" line="4056"/>
<source>Game: %1 FPS</source>
<translation>遊戲:%1 FPS</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="3994"/>
+ <location filename="../../src/yuzu/main.cpp" line="4058"/>
<source>Frame: %1 ms</source>
<translation>畫格延遲:%1 ms</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4005"/>
- <source>GPU NORMAL</source>
- <translation>GPU 一般效能</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4010"/>
- <source>GPU HIGH</source>
- <translation>GPU 高效能</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4015"/>
- <source>GPU EXTREME</source>
- <translation>GPU 最高效能</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4020"/>
- <source>GPU ERROR</source>
- <translation>GPU 錯誤</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>DOCKED</source>
- <translation>主機模式</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4030"/>
- <source>HANDHELD</source>
- <translation>掌機模式</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4037"/>
- <source>OPENGL</source>
- <translation>OPENGL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4040"/>
- <source>VULKAN</source>
- <translation>VULKAN</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4043"/>
- <source>NULL</source>
- <translation>NULL</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4052"/>
- <source>NEAREST</source>
- <translation>最近鄰域</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4055"/>
- <location filename="../../src/yuzu/main.cpp" line="4070"/>
- <source>BILINEAR</source>
- <translation>雙線性</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4058"/>
- <source>BICUBIC</source>
- <translation>雙三次</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4061"/>
- <source>GAUSSIAN</source>
- <translation>高斯</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4064"/>
- <source>SCALEFORCE</source>
- <translation>強制縮放</translation>
+ <location filename="../../src/yuzu/main.cpp" line="4085"/>
+ <source>%1 %2</source>
+ <translation>%1 %2</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4067"/>
+ <location filename="../../src/yuzu/main.cpp" line="4095"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
<source>FSR</source>
<translation>FSR</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4079"/>
- <location filename="../../src/yuzu/main.cpp" line="4088"/>
+ <location filename="../../src/yuzu/main.cpp" line="4103"/>
<source>NO AA</source>
<translation>抗鋸齒關</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4082"/>
- <source>FXAA</source>
- <translation>FXAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4085"/>
- <source>SMAA</source>
- <translation>SMAA</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/main.cpp" line="4098"/>
+ <location filename="../../src/yuzu/main.cpp" line="4112"/>
<source>VOLUME: MUTE</source>
- <translation>音量: 静音</translation>
+ <translation>音量: 靜音</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4101"/>
+ <location filename="../../src/yuzu/main.cpp" line="4115"/>
<source>VOLUME: %1%</source>
<comment>Volume percentage (e.g. 50%)</comment>
<translation>音量: %1%</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4182"/>
+ <location filename="../../src/yuzu/main.cpp" line="4196"/>
<source>Confirm Key Rederivation</source>
<translation>確認重新產生金鑰</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4183"/>
+ <location filename="../../src/yuzu/main.cpp" line="4197"/>
<source>You are about to force rederive all of your keys.
If you do not know what this means or what you are doing,
this is a potentially destructive action.
@@ -5595,37 +5634,37 @@ This will delete your autogenerated key files and re-run the key derivation modu
這將刪除您自動產生的金鑰檔案並重新執行產生金鑰模組。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4217"/>
+ <location filename="../../src/yuzu/main.cpp" line="4231"/>
<source>Missing fuses</source>
<translation>遺失項目</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4220"/>
+ <location filename="../../src/yuzu/main.cpp" line="4234"/>
<source> - Missing BOOT0</source>
<translation>- 遺失 BOOT0</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4223"/>
+ <location filename="../../src/yuzu/main.cpp" line="4237"/>
<source> - Missing BCPKG2-1-Normal-Main</source>
<translation> - 遺失 BCPKG2-1-Normal-Main</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4226"/>
+ <location filename="../../src/yuzu/main.cpp" line="4240"/>
<source> - Missing PRODINFO</source>
<translation>- 遺失 PRODINFO</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4231"/>
+ <location filename="../../src/yuzu/main.cpp" line="4245"/>
<source>Derivation Components Missing</source>
<translation>遺失產生元件</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4232"/>
+ <location filename="../../src/yuzu/main.cpp" line="4246"/>
<source>Encryption keys are missing. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)&lt;/small&gt;</source>
<translation>缺少加密金鑰。 &lt;br&gt;請按照&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;《Yuzu快速入門指南》來取得所有金鑰、韌體、遊戲&lt;br&gt;&lt;br&gt;&lt;small&gt;(%1)。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4241"/>
+ <location filename="../../src/yuzu/main.cpp" line="4255"/>
<source>Deriving keys...
This may take up to a minute depending
on your system&apos;s performance.</source>
@@ -5634,49 +5673,49 @@ on your system&apos;s performance.</source>
您的系統效能。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4243"/>
+ <location filename="../../src/yuzu/main.cpp" line="4257"/>
<source>Deriving Keys</source>
<translation>產生金鑰</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4260"/>
+ <location filename="../../src/yuzu/main.cpp" line="4274"/>
<source>System Archive Decryption Failed</source>
- <translation>系统固件解密失败</translation>
+ <translation>系統封存解密失敗</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4261"/>
+ <location filename="../../src/yuzu/main.cpp" line="4275"/>
<source>Encryption keys failed to decrypt firmware. &lt;br&gt;Please follow &lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;the yuzu quickstart guide&lt;/a&gt; to get all your keys, firmware and games.</source>
- <translation>当前密钥无法解密系统固件。&lt;br&gt;请查看&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速导航&lt;/a&gt;以获得你的密钥、固件和游戏。</translation>
+ <translation>加密金鑰無法解密韌體。&lt;br&gt;請依循&lt;a href=&apos;https://yuzu-emu.org/help/quickstart/&apos;&gt;yuzu 快速開始指南&lt;/a&gt;以取得您的金鑰、韌體和遊戲。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4317"/>
+ <location filename="../../src/yuzu/main.cpp" line="4331"/>
<source>Select RomFS Dump Target</source>
<translation>選擇 RomFS 傾印目標</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4318"/>
+ <location filename="../../src/yuzu/main.cpp" line="4332"/>
<source>Please select which RomFS you would like to dump.</source>
<translation>請選擇希望傾印的 RomFS。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4333"/>
+ <location filename="../../src/yuzu/main.cpp" line="4347"/>
<source>Are you sure you want to close yuzu?</source>
<translation>您確定要關閉 yuzu 嗎?</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4334"/>
- <location filename="../../src/yuzu/main.cpp" line="4429"/>
- <location filename="../../src/yuzu/main.cpp" line="4442"/>
+ <location filename="../../src/yuzu/main.cpp" line="4348"/>
+ <location filename="../../src/yuzu/main.cpp" line="4443"/>
+ <location filename="../../src/yuzu/main.cpp" line="4456"/>
<source>yuzu</source>
<translation>yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4430"/>
+ <location filename="../../src/yuzu/main.cpp" line="4444"/>
<source>Are you sure you want to stop the emulation? Any unsaved progress will be lost.</source>
<translation>您確定要停止模擬嗎?未儲存的進度將會遺失。</translation>
</message>
<message>
- <location filename="../../src/yuzu/main.cpp" line="4439"/>
+ <location filename="../../src/yuzu/main.cpp" line="4453"/>
<source>The currently running application has requested yuzu to not exit.
Would you like to bypass this and exit anyway?</source>
@@ -5684,48 +5723,143 @@ Would you like to bypass this and exit anyway?</source>
您希望忽略並退出嗎?</translation>
</message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="69"/>
+ <source>None</source>
+ <translation>無</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="70"/>
+ <source>FXAA</source>
+ <translation>FXAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="71"/>
+ <source>SMAA</source>
+ <translation>SMAA</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <source>Nearest</source>
+ <translation>最近鄰</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <source>Bilinear</source>
+ <translation>雙線性</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <source>Bicubic</source>
+ <translation>雙立方</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <source>Gaussian</source>
+ <translation>高斯</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <source>ScaleForce</source>
+ <translation>強制縮放</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <source>Docked</source>
+ <translation>TV</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <source>Handheld</source>
+ <translation>掌机模式</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <source>Normal</source>
+ <translation>標準</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <source>High</source>
+ <translation>高</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <source>Extreme</source>
+ <translation>極高</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="99"/>
+ <source>Vulkan</source>
+ <translation>Vulkan</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="100"/>
+ <source>OpenGL</source>
+ <translation>OpenGL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="101"/>
+ <source>Null</source>
+ <translation>無</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="105"/>
+ <source>GLSL</source>
+ <translation>GLSL</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="106"/>
+ <source>GLASM</source>
+ <translation>GLASM</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="107"/>
+ <source>SPIRV</source>
+ <translation>SPIRV</translation>
+ </message>
</context>
<context>
<name>GRenderWindow</name>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="953"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="970"/>
<source>OpenGL not available!</source>
<translation>無法使用 OpenGL 模式!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="955"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="954"/>
<source>OpenGL shared contexts are not supported.</source>
- <translation>不支持 OpenGL 共享上下文。</translation>
+ <translation>不支援 OpenGL 共用的上下文。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="972"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="971"/>
<source>yuzu has not been compiled with OpenGL support.</source>
<translation>yuzu 未以支援 OpenGL 的方式編譯。</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="995"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1015"/>
<source>Error while initializing OpenGL!</source>
<translation>初始化 OpenGL 時發生錯誤!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="997"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="996"/>
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
<translation>您的 GPU 可能不支援 OpenGL,或是未安裝最新的圖形驅動程式</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1005"/>
<source>Error while initializing OpenGL 4.6!</source>
<translation>初始化 OpenGL 4.6 時發生錯誤!</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1007"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1006"/>
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1</source>
<translation>您的 GPU 可能不支援 OpenGL 4.6,或是未安裝最新的圖形驅動程式&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1</translation>
</message>
<message>
- <location filename="../../src/yuzu/bootmanager.cpp" line="1017"/>
+ <location filename="../../src/yuzu/bootmanager.cpp" line="1016"/>
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.&lt;br&gt;&lt;br&gt;GL Renderer:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;Unsupported extensions:&lt;br&gt;%2</source>
<translation>您的 GPU 可能不支援某些必需的 OpenGL 功能。請確保您已安裝最新的圖形驅動程式。&lt;br&gt;&lt;br&gt;GL 渲染器:&lt;br&gt;%1&lt;br&gt;&lt;br&gt;不支援的功能:&lt;br&gt;%2</translation>
</message>
@@ -5785,7 +5919,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="547"/>
<source>Remove Cache Storage</source>
- <translation>移除缓存</translation>
+ <translation>移除快取儲存空間</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="548"/>
@@ -5831,17 +5965,17 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="559"/>
<source>Create Shortcut</source>
- <translation>创建快捷方式</translation>
+ <translation>建立捷徑</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="560"/>
<source>Add to Desktop</source>
- <translation>添加到桌面</translation>
+ <translation>新增至桌面</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="562"/>
<source>Add to Applications Menu</source>
- <translation>添加到应用程序菜单</translation>
+ <translation>新增至應用程式選單</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list.cpp" line="565"/>
@@ -5909,12 +6043,12 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="149"/>
<source>Ingame</source>
- <translation>进入游戏</translation>
+ <translation>遊戲內</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="149"/>
<source>Game starts, but crashes or major glitches prevent it from being completed.</source>
- <translation>游戏可以开始,但会出现崩溃或严重故障导致游戏无法继续。</translation>
+ <translation>遊戲可以執行,但可能會出現當機或故障導致遊戲無法正常運作。</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="151"/>
@@ -5924,17 +6058,17 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="151"/>
<source>Game can be played without issues.</source>
- <translation>游戏可以毫无问题地运行。</translation>
+ <translation>遊戲可以毫無問題的遊玩。</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Playable</source>
- <translation>可运行</translation>
+ <translation>可遊玩</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="152"/>
<source>Game functions with minor graphical or audio glitches and is playable from start to finish.</source>
- <translation>游戏可以从头到尾完整地运行,但可能出现轻微的图形或音频故障。</translation>
+ <translation>遊戲自始至終可以正常遊玩,但可能會有一些輕微的圖形或音訊故障。</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="155"/>
@@ -5944,7 +6078,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="155"/>
<source>Game loads, but is unable to progress past the Start Screen.</source>
- <translation>游戏可以加载,但无法通过标题页面。</translation>
+ <translation>遊戲可以載入,但無法通過開始畫面。</translation>
</message>
<message>
<location filename="../../src/yuzu/game_list_p.h" line="156"/>
@@ -5998,22 +6132,22 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="14"/>
<source>Create Room</source>
- <translation>创建房间</translation>
+ <translation>建立房間</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="37"/>
<source>Room Name</source>
- <translation>房间名称</translation>
+ <translation>房間名稱</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="51"/>
<source>Preferred Game</source>
- <translation>首选游戏</translation>
+ <translation>偏好遊戲</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="61"/>
<source>Max Players</source>
- <translation>最大玩家数</translation>
+ <translation>最大玩家數目</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="91"/>
@@ -6023,32 +6157,32 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="101"/>
<source>(Leave blank for open game)</source>
- <translation>(留空表示不限定游戏)</translation>
+ <translation>(空白表示開放式遊戲)</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="118"/>
<source>Password</source>
- <translation>密码</translation>
+ <translation>密碼</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="125"/>
<source>Port</source>
- <translation>端口</translation>
+ <translation>連接埠</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="139"/>
<source>Room Description</source>
- <translation>房间描述</translation>
+ <translation>房間敘述</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="153"/>
<source>Load Previous Ban List</source>
- <translation>加载先前的封禁列表</translation>
+ <translation>載入先前的封鎖清單</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="184"/>
<source>Public</source>
- <translation>公共</translation>
+ <translation>公用</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="189"/>
@@ -6058,7 +6192,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.ui" line="197"/>
<source>Host Room</source>
- <translation>管理房间</translation>
+ <translation>主機房間</translation>
</message>
</context>
<context>
@@ -6066,7 +6200,7 @@ Would you like to bypass this and exit anyway?</source>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.cpp" line="182"/>
<source>Error</source>
- <translation>错误</translation>
+ <translation>錯誤</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/host_room.cpp" line="183"/>
@@ -6079,140 +6213,140 @@ Debug Message: </source>
<context>
<name>Hotkeys</name>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
<source>Audio Mute/Unmute</source>
- <translation>静音/关闭静音</translation>
- </message>
- <message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="74"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <translation>靜音/取消靜音</translation>
+ </message>
+ <message>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="116"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Main Window</source>
- <translation>主窗口</translation>
+ <translation>主要視窗</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="117"/>
<source>Audio Volume Down</source>
- <translation>调低音量</translation>
+ <translation>音訊音量降低</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="76"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="118"/>
<source>Audio Volume Up</source>
- <translation>调高音量</translation>
+ <translation>音訊音量提高</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="119"/>
<source>Capture Screenshot</source>
<translation>截圖</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="78"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="120"/>
<source>Change Adapting Filter</source>
- <translation>更改窗口滤镜</translation>
+ <translation>變更自適性過濾器</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="121"/>
<source>Change Docked Mode</source>
- <translation>更改运行模式</translation>
+ <translation>變更底座模式</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="80"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="122"/>
<source>Change GPU Accuracy</source>
- <translation>更改 GPU 精度</translation>
+ <translation>變更 GPU 精確度</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="123"/>
<source>Continue/Pause Emulation</source>
- <translation>继续/暂停模拟</translation>
+ <translation>繼續/暫停模擬</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="82"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="124"/>
<source>Exit Fullscreen</source>
- <translation>退出全屏</translation>
+ <translation>離開全螢幕</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="125"/>
<source>Exit yuzu</source>
- <translation>退出 yuzu</translation>
+ <translation>離開 yuzu</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="84"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="126"/>
<source>Fullscreen</source>
<translation>全屏</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="127"/>
<source>Load File</source>
<translation>開啟檔案</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="86"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="128"/>
<source>Load/Remove Amiibo</source>
- <translation>加载/移除 Amiibo</translation>
+ <translation>載入/移除 Amiibo</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="129"/>
<source>Restart Emulation</source>
- <translation>重新启动模拟</translation>
+ <translation>重新啟動模擬</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="88"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="130"/>
<source>Stop Emulation</source>
- <translation>停止模拟</translation>
+ <translation>停止模擬</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="131"/>
<source>TAS Record</source>
- <translation>TAS 录制</translation>
+ <translation>TAS 錄製</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="90"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="132"/>
<source>TAS Reset</source>
- <translation>重设 TAS</translation>
+ <translation>TAS 重設</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="133"/>
<source>TAS Start/Stop</source>
- <translation>TAS 开始/停止</translation>
+ <translation>TAS 開始/停止</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="92"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="134"/>
<source>Toggle Filter Bar</source>
- <translation>切换搜索栏</translation>
+ <translation>切換搜尋列</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="135"/>
<source>Toggle Framerate Limit</source>
- <translation>切换帧率限制</translation>
+ <translation>切換影格速率限制</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="94"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="136"/>
<source>Toggle Mouse Panning</source>
- <translation>切换鼠标平移</translation>
+ <translation>切換滑鼠移動</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/config.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/config.cpp" line="137"/>
<source>Toggle Status Bar</source>
- <translation>切换状态栏</translation>
+ <translation>切換狀態列</translation>
</message>
</context>
<context>
@@ -6290,53 +6424,53 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="14"/>
<source>Public Room Browser</source>
- <translation>公共房间浏览器</translation>
+ <translation>公共房間瀏覽器</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="32"/>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="39"/>
<source>Nickname</source>
- <translation>昵称</translation>
+ <translation>暱稱</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="59"/>
<source>Filters</source>
- <translation>过滤器</translation>
+ <translation>過濾器</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="66"/>
<source>Search</source>
- <translation>搜索</translation>
+ <translation>搜尋</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="76"/>
<source>Games I Own</source>
- <translation>游戏 I 我的</translation>
+ <translation>我擁有的遊戲</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="83"/>
<source>Hide Empty Rooms</source>
- <translation>隐藏空房间</translation>
+ <translation>隱藏空房間</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="90"/>
<source>Hide Full Rooms</source>
- <translation>隐藏满员的房间</translation>
+ <translation>隱藏客滿的房間</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.ui" line="110"/>
<source>Refresh Lobby</source>
- <translation>刷新游戏大厅</translation>
+ <translation>重新整理遊戲大廳</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="113"/>
<source>Password Required to Join</source>
- <translation>加入此房间需要密码</translation>
+ <translation>加入需要密碼</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="113"/>
<source>Password:</source>
- <translation>密码:</translation>
+ <translation>密碼:</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="216"/>
@@ -6346,27 +6480,27 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="217"/>
<source>Room Name</source>
- <translation>房间名称</translation>
+ <translation>房間名稱</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="218"/>
<source>Preferred Game</source>
- <translation>首选游戏</translation>
+ <translation>偏好遊戲</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="219"/>
<source>Host</source>
- <translation>管理</translation>
+ <translation>主機</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="226"/>
<source>Refreshing</source>
- <translation>刷新中</translation>
+ <translation>正在重新整理</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/lobby.cpp" line="283"/>
<source>Refresh List</source>
- <translation>刷新列表</translation>
+ <translation>重新整理清單</translation>
</message>
</context>
<context>
@@ -6529,27 +6663,27 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/main.ui" line="270"/>
<source>&amp;Browse Public Game Lobby</source>
- <translation>浏览公共游戏大厅 (&amp;B)</translation>
+ <translation>瀏覽公用遊戲大廳 (&amp;B)</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="278"/>
<source>&amp;Create Room</source>
- <translation>创建房间 (&amp;C)</translation>
+ <translation>建立房間 (&amp;C)</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="286"/>
<source>&amp;Leave Room</source>
- <translation>离开房间 (&amp;L)</translation>
+ <translation>離開房間 (&amp;L)</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="291"/>
<source>&amp;Direct Connect to Room</source>
- <translation>直接连接到房间 (&amp;D)</translation>
+ <translation>直接連線到房間 (&amp;D)</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="299"/>
<source>&amp;Show Current Room</source>
- <translation>显示当前房间 (&amp;S)</translation>
+ <translation>顯示目前的房間 (&amp;S)</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="307"/>
@@ -6564,7 +6698,7 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/main.ui" line="323"/>
<source>Load/Remove &amp;Amiibo...</source>
- <translation>加载/移除 Amiibo... (&amp;A)</translation>
+ <translation>載入/移除 Amiibo... (&amp;A)</translation>
</message>
<message>
<location filename="../../src/yuzu/main.ui" line="331"/>
@@ -6635,48 +6769,48 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.ui" line="6"/>
<source>Moderation</source>
- <translation>审核</translation>
+ <translation>仲裁</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.ui" line="20"/>
<source>Ban List</source>
- <translation>封禁列表</translation>
+ <translation>封鎖清單</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.ui" line="41"/>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.cpp" line="73"/>
<source>Refreshing</source>
- <translation>刷新中</translation>
+ <translation>正在重新整理</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.ui" line="51"/>
<source>Unban</source>
- <translation>解封</translation>
+ <translation>解除封鎖</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.cpp" line="40"/>
<source>Subject</source>
- <translation>项目</translation>
+ <translation>主旨</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.cpp" line="41"/>
<source>Type</source>
- <translation>类型</translation>
+ <translation>類型</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.cpp" line="83"/>
<source>Forum Username</source>
- <translation>论坛用户名</translation>
+ <translation>論壇使用者名稱</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.cpp" line="88"/>
<source>IP Address</source>
- <translation>IP 地址</translation>
+ <translation>IP 位址</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/moderation_dialog.cpp" line="95"/>
<source>Refresh</source>
- <translation>刷新</translation>
+ <translation>重新整理</translation>
</message>
</context>
<context>
@@ -6684,17 +6818,17 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="90"/>
<source>Current connection status</source>
- <translation>当前连接状态</translation>
+ <translation>目前連線狀態</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="117"/>
<source>Not Connected. Click here to find a room!</source>
- <translation>未连接。点击此处查找一个房间!</translation>
+ <translation>尚未連線,按一下這裡以尋找房間!</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="123"/>
<source>Not Connected</source>
- <translation>未连接</translation>
+ <translation>尚未連線</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="129"/>
@@ -6704,12 +6838,12 @@ Debug Message: </source>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="136"/>
<source>New Messages Received</source>
- <translation>收到了新消息</translation>
+ <translation>收到了新訊息</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="207"/>
<source>Error</source>
- <translation>错误</translation>
+ <translation>錯誤</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/state.cpp" line="208"/>
@@ -6840,7 +6974,7 @@ Proceed anyway?</source>
<message>
<location filename="../../src/yuzu/multiplayer/message.cpp" line="75"/>
<source>Leave Room</source>
- <translation>离开房间</translation>
+ <translation>離開房間</translation>
</message>
<message>
<location filename="../../src/yuzu/multiplayer/message.cpp" line="76"/>
@@ -6952,30 +7086,30 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="21"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="32"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="42"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="43"/>
<source>Shift</source>
<translation>Shift</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="23"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="34"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="44"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="45"/>
<source>Ctrl</source>
<translation>Ctrl</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="25"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="36"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="46"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="47"/>
<source>Alt</source>
<translation>Alt</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="35"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="389"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="455"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="180"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="248"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="392"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="458"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="181"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="249"/>
<source>[not set]</source>
<translation>[未設定]</translation>
</message>
@@ -6986,14 +7120,14 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="54"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="478"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="482"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="486"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="490"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="271"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="275"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="279"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="283"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="481"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="485"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="489"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="272"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="276"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="280"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="284"/>
<source>Axis %1%2</source>
<translation>Axis %1%2</translation>
</message>
@@ -7004,322 +7138,322 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_touch_from_button.cpp" line="66"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="463"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="493"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="242"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="256"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="286"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="452"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="466"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="496"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="243"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="257"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="287"/>
<source>[unknown]</source>
<translation>[未知]</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="47"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="145"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="58"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="146"/>
<source>Left</source>
<translation>左</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="49"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="148"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="60"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="149"/>
<source>Right</source>
<translation>右</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="51"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="154"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="62"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="155"/>
<source>Down</source>
<translation>下</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="53"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="151"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="64"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="152"/>
<source>Up</source>
<translation>上</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="55"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="65"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="66"/>
<source>Z</source>
<translation>Z</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="57"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="67"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="68"/>
<source>R</source>
<translation>R</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="59"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="69"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="70"/>
<source>L</source>
<translation>L</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="61"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="83"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="84"/>
<source>A</source>
<translation>A</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="63"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="85"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="86"/>
<source>B</source>
<translation>B</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="65"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="87"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="88"/>
<source>X</source>
<translation>X</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="67"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="89"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="90"/>
<source>Y</source>
<translation>Y</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="69"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="91"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="92"/>
<source>Start</source>
<translation>開始</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="71"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="101"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="102"/>
<source>L1</source>
<translation>L1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="73"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="103"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="104"/>
<source>L2</source>
<translation>L2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="75"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="105"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="106"/>
<source>L3</source>
<translation>L3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="77"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="107"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="108"/>
<source>R1</source>
<translation>R1</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="79"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="109"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="110"/>
<source>R2</source>
<translation>R2</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="81"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="111"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="112"/>
<source>R3</source>
<translation>R3</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="83"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="113"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="114"/>
<source>Circle</source>
<translation>○</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="85"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="115"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="116"/>
<source>Cross</source>
<translation>╳</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="87"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="117"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="118"/>
<source>Square</source>
<translation>□</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="89"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="119"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="120"/>
<source>Triangle</source>
<translation>Δ</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="91"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="121"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="122"/>
<source>Share</source>
<translation>分享</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="93"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="123"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="124"/>
<source>Options</source>
<translation>選項</translation>
</message>
<message>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="95"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="139"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="140"/>
<source>[undefined]</source>
<translation>[未指定]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="399"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="402"/>
<source>%1%2</source>
<translation>%1%2</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="403"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="196"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="406"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="197"/>
<source>[invalid]</source>
<translation>[無效]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="413"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="437"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="416"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
<source>%1%2Hat %3</source>
<translation>%1%2Hat 控制器 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="417"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="440"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="420"/>
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="443"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="236"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="237"/>
<source>%1%2Axis %3</source>
<translation>%1%2軸 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="423"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="216"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="426"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="217"/>
<source>%1%2Axis %3,%4,%5</source>
<translation>%1%2軸 %3,%4,%5</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="427"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="220"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="430"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="221"/>
<source>%1%2Motion %3</source>
<translation>%1%2體感 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="431"/>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="446"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="434"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="449"/>
<source>%1%2Button %3</source>
<translation>%1%2按鈕 %3</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="473"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="266"/>
+ <location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="476"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="267"/>
<source>[unused]</source>
<translation>[未使用]</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="71"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="72"/>
<source>ZR</source>
<translation>ZR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="73"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="74"/>
<source>ZL</source>
<translation>ZL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="75"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="76"/>
<source>SR</source>
<translation>SR</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="77"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="78"/>
<source>SL</source>
<translation>SL</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="79"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="80"/>
<source>Stick L</source>
<translation>左摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="81"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="82"/>
<source>Stick R</source>
<translation>右摇杆</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="93"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="94"/>
<source>Plus</source>
<translation>+</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="95"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="96"/>
<source>Minus</source>
<translation>-</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="97"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="125"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="98"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="126"/>
<source>Home</source>
<translation>HOME</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="99"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="100"/>
<source>Capture</source>
<translation>截圖</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="127"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="128"/>
<source>Touch</source>
<translation>觸控</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="129"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="130"/>
<source>Wheel</source>
<comment>Indicates the mouse wheel</comment>
<translation>滑鼠滾輪</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="131"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="132"/>
<source>Backward</source>
<translation>後退</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="133"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="134"/>
<source>Forward</source>
<translation>前進</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="135"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="136"/>
<source>Task</source>
<translation>任務鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="137"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="138"/>
<source>Extra</source>
<translation>額外按鍵</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="192"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="193"/>
<source>%1%2%3%4</source>
<translation>%1%2%3%4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="206"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="230"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="207"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="231"/>
<source>%1%2%3Hat %4</source>
<translation>%1%2%3 控制器 %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="210"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="233"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="211"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="234"/>
<source>%1%2%3Axis %4</source>
<translation>%1%2%3轴 %4</translation>
</message>
<message>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="224"/>
- <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="239"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="225"/>
+ <location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="240"/>
<source>%1%2%3Button %4</source>
- <translation>%1%2%3 按键 %4</translation>
+ <translation>%1%2%3 按鍵 %4</translation>
</message>
</context>
<context>
@@ -7327,12 +7461,12 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="14"/>
<source>Amiibo Settings</source>
- <translation>Amiibo 设置</translation>
+ <translation>Amiibo 設定</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="169"/>
<source>Amiibo Info</source>
- <translation>Amiibo 信息</translation>
+ <translation>Amiibo 資訊</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="177"/>
@@ -7352,7 +7486,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="242"/>
<source>Amiibo Data</source>
- <translation>Amiibo 数据</translation>
+ <translation>Amiibo 資料</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="250"/>
@@ -7397,7 +7531,7 @@ p, li { white-space: pre-wrap; }
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="384"/>
<source>Mount Amiibo</source>
- <translation>挂载 Amiibo</translation>
+ <translation>掛載 Amiibo</translation>
</message>
<message>
<location filename="../../src/yuzu/applets/qt_amiibo_settings.ui" line="390"/>
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 7cce27d51..4ff588851 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -143,6 +143,11 @@ endif()
# TZDB (Time Zone Database)
add_subdirectory(nx_tzdb)
+# VMA
+add_library(vma vma/vma.cpp)
+target_include_directories(vma PUBLIC ./vma/VulkanMemoryAllocator/include)
+target_link_libraries(vma PRIVATE Vulkan::Headers)
+
if (NOT TARGET LLVM::Demangle)
add_library(demangle demangle/ItaniumDemangle.cpp)
target_include_directories(demangle PUBLIC ./demangle)
@@ -152,6 +157,9 @@ endif()
add_library(stb stb/stb_dxt.cpp)
target_include_directories(stb PUBLIC ./stb)
+add_library(bc_decoder bc_decoder/bc_decoder.cpp)
+target_include_directories(bc_decoder PUBLIC ./bc_decoder)
+
if (ANDROID)
if (ARCHITECTURE_arm64)
add_subdirectory(libadrenotools)
diff --git a/externals/SDL b/externals/SDL
-Subproject f17058b562c8a1090c0c996b42982721ace9090
+Subproject 491fba1d06a4810645092b2559b9cc94abeb23b
diff --git a/externals/bc_decoder/bc_decoder.cpp b/externals/bc_decoder/bc_decoder.cpp
new file mode 100644
index 000000000..536c44f34
--- /dev/null
+++ b/externals/bc_decoder/bc_decoder.cpp
@@ -0,0 +1,1522 @@
+// SPDX-License-Identifier: MPL-2.0
+// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
+// Copyright 2019 The SwiftShader Authors. All Rights Reserved.
+
+// This BCn Decoder is directly derivative of Swiftshader's BCn Decoder found at: https://github.com/google/swiftshader/blob/d070309f7d154d6764cbd514b1a5c8bfcef61d06/src/Device/BC_Decoder.cpp
+// This file does not follow the Skyline code conventions but has certain Skyline specific code
+// There are a lot of implicit and narrowing conversions in this file due to this (Warnings are disabled as a result)
+
+#include <array>
+#include <assert.h>
+#include <stddef.h>
+#include <stdint.h>
+
+namespace {
+ constexpr int BlockWidth = 4;
+ constexpr int BlockHeight = 4;
+
+ struct BC_color {
+ void decode(uint8_t *dst, size_t x, size_t y, size_t dstW, size_t dstH, size_t dstPitch, size_t dstBpp, bool hasAlphaChannel, bool hasSeparateAlpha) const {
+ Color c[4];
+ c[0].extract565(c0);
+ c[1].extract565(c1);
+ if (hasSeparateAlpha || (c0 > c1)) {
+ c[2] = ((c[0] * 2) + c[1]) / 3;
+ c[3] = ((c[1] * 2) + c[0]) / 3;
+ } else {
+ c[2] = (c[0] + c[1]) >> 1;
+ if (hasAlphaChannel) {
+ c[3].clearAlpha();
+ }
+ }
+
+ for (int j = 0; j < BlockHeight && (y + j) < dstH; j++) {
+ size_t dstOffset = j * dstPitch;
+ size_t idxOffset = j * BlockHeight;
+ for (size_t i = 0; i < BlockWidth && (x + i) < dstW; i++, idxOffset++, dstOffset += dstBpp) {
+ *reinterpret_cast<unsigned int *>(dst + dstOffset) = c[getIdx(idxOffset)].pack8888();
+ }
+ }
+ }
+
+ private:
+ struct Color {
+ Color() {
+ c[0] = c[1] = c[2] = 0;
+ c[3] = 0xFF000000;
+ }
+
+ void extract565(const unsigned int c565) {
+ c[0] = ((c565 & 0x0000001F) << 3) | ((c565 & 0x0000001C) >> 2);
+ c[1] = ((c565 & 0x000007E0) >> 3) | ((c565 & 0x00000600) >> 9);
+ c[2] = ((c565 & 0x0000F800) >> 8) | ((c565 & 0x0000E000) >> 13);
+ }
+
+ unsigned int pack8888() const {
+ return ((c[0] & 0xFF) << 16) | ((c[1] & 0xFF) << 8) | (c[2] & 0xFF) | c[3];
+ }
+
+ void clearAlpha() {
+ c[3] = 0;
+ }
+
+ Color operator*(int factor) const {
+ Color res;
+ for (int i = 0; i < 4; ++i) {
+ res.c[i] = c[i] * factor;
+ }
+ return res;
+ }
+
+ Color operator/(int factor) const {
+ Color res;
+ for (int i = 0; i < 4; ++i) {
+ res.c[i] = c[i] / factor;
+ }
+ return res;
+ }
+
+ Color operator>>(int shift) const {
+ Color res;
+ for (int i = 0; i < 4; ++i) {
+ res.c[i] = c[i] >> shift;
+ }
+ return res;
+ }
+
+ Color operator+(Color const &obj) const {
+ Color res;
+ for (int i = 0; i < 4; ++i) {
+ res.c[i] = c[i] + obj.c[i];
+ }
+ return res;
+ }
+
+ private:
+ int c[4];
+ };
+
+ size_t getIdx(int i) const {
+ size_t offset = i << 1; // 2 bytes per index
+ return (idx & (0x3 << offset)) >> offset;
+ }
+
+ unsigned short c0;
+ unsigned short c1;
+ unsigned int idx;
+ };
+ static_assert(sizeof(BC_color) == 8, "BC_color must be 8 bytes");
+
+ struct BC_channel {
+ void decode(uint8_t *dst, size_t x, size_t y, size_t dstW, size_t dstH, size_t dstPitch, size_t dstBpp, size_t channel, bool isSigned) const {
+ int c[8] = {0};
+
+ if (isSigned) {
+ c[0] = static_cast<signed char>(data & 0xFF);
+ c[1] = static_cast<signed char>((data & 0xFF00) >> 8);
+ } else {
+ c[0] = static_cast<uint8_t>(data & 0xFF);
+ c[1] = static_cast<uint8_t>((data & 0xFF00) >> 8);
+ }
+
+ if (c[0] > c[1]) {
+ for (int i = 2; i < 8; ++i) {
+ c[i] = ((8 - i) * c[0] + (i - 1) * c[1]) / 7;
+ }
+ } else {
+ for (int i = 2; i < 6; ++i) {
+ c[i] = ((6 - i) * c[0] + (i - 1) * c[1]) / 5;
+ }
+ c[6] = isSigned ? -128 : 0;
+ c[7] = isSigned ? 127 : 255;
+ }
+
+ for (size_t j = 0; j < BlockHeight && (y + j) < dstH; j++) {
+ for (size_t i = 0; i < BlockWidth && (x + i) < dstW; i++) {
+ dst[channel + (i * dstBpp) + (j * dstPitch)] = static_cast<uint8_t>(c[getIdx((j * BlockHeight) + i)]);
+ }
+ }
+ }
+
+ private:
+ uint8_t getIdx(int i) const {
+ int offset = i * 3 + 16;
+ return static_cast<uint8_t>((data & (0x7ull << offset)) >> offset);
+ }
+
+ uint64_t data;
+ };
+ static_assert(sizeof(BC_channel) == 8, "BC_channel must be 8 bytes");
+
+ struct BC_alpha {
+ void decode(uint8_t *dst, size_t x, size_t y, size_t dstW, size_t dstH, size_t dstPitch, size_t dstBpp) const {
+ dst += 3; // Write only to alpha (channel 3)
+ for (size_t j = 0; j < BlockHeight && (y + j) < dstH; j++, dst += dstPitch) {
+ uint8_t *dstRow = dst;
+ for (size_t i = 0; i < BlockWidth && (x + i) < dstW; i++, dstRow += dstBpp) {
+ *dstRow = getAlpha(j * BlockHeight + i);
+ }
+ }
+ }
+
+ private:
+ uint8_t getAlpha(int i) const {
+ int offset = i << 2;
+ int alpha = (data & (0xFull << offset)) >> offset;
+ return static_cast<uint8_t>(alpha | (alpha << 4));
+ }
+
+ uint64_t data;
+ };
+ static_assert(sizeof(BC_alpha) == 8, "BC_alpha must be 8 bytes");
+
+ namespace BC6H {
+ static constexpr int MaxPartitions = 64;
+
+ // @fmt:off
+
+ static constexpr uint8_t PartitionTable2[MaxPartitions][16] = {
+ { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
+ { 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1 },
+ { 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 },
+ { 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1 },
+ { 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1 },
+ { 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1 },
+ { 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1 },
+ { 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1 },
+ { 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0 },
+ { 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0 },
+ { 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1 },
+ { 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0 },
+ { 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0 },
+ { 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0 },
+ { 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0 },
+ { 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+ { 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0 },
+ { 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0 },
+ { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 },
+ { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1 },
+ { 0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0 },
+ { 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0 },
+ { 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0 },
+ { 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0 },
+ { 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1 },
+ { 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1 },
+ { 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0 },
+ { 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0 },
+ { 0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0 },
+ { 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0 },
+ { 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0 },
+ { 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1 },
+ { 0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1 },
+ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 },
+ { 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0 },
+ { 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0 },
+ { 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0 },
+ { 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1 },
+ { 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1 },
+ { 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0 },
+ { 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0 },
+ { 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1 },
+ { 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1 },
+ { 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1 },
+ { 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1 },
+ { 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1 },
+ { 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0 },
+ { 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0 },
+ { 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1 },
+ };
+
+ static constexpr uint8_t AnchorTable2[MaxPartitions] = {
+ 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf,
+ 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf,
+ 0xf, 0x2, 0x8, 0x2, 0x2, 0x8, 0x8, 0xf,
+ 0x2, 0x8, 0x2, 0x2, 0x8, 0x8, 0x2, 0x2,
+ 0xf, 0xf, 0x6, 0x8, 0x2, 0x8, 0xf, 0xf,
+ 0x2, 0x8, 0x2, 0x2, 0x2, 0xf, 0xf, 0x6,
+ 0x6, 0x2, 0x6, 0x8, 0xf, 0xf, 0x2, 0x2,
+ 0xf, 0xf, 0xf, 0xf, 0xf, 0x2, 0x2, 0xf,
+ };
+
+ // @fmt:on
+
+ // 1.0f in half-precision floating point format
+ static constexpr uint16_t halfFloat1 = 0x3C00;
+ union Color {
+ struct RGBA {
+ uint16_t r = 0;
+ uint16_t g = 0;
+ uint16_t b = 0;
+ uint16_t a = halfFloat1;
+
+ RGBA(uint16_t r, uint16_t g, uint16_t b)
+ : r(r), g(g), b(b) {
+ }
+
+ RGBA &operator=(const RGBA &other) {
+ this->r = other.r;
+ this->g = other.g;
+ this->b = other.b;
+ this->a = halfFloat1;
+
+ return *this;
+ }
+ };
+
+ Color(uint16_t r, uint16_t g, uint16_t b)
+ : rgba(r, g, b) {
+ }
+
+ Color(int r, int g, int b)
+ : rgba((uint16_t) r, (uint16_t) g, (uint16_t) b) {
+ }
+
+ Color() {}
+
+ Color(const Color &other) {
+ this->rgba = other.rgba;
+ }
+
+ Color &operator=(const Color &other) {
+ this->rgba = other.rgba;
+
+ return *this;
+ }
+
+ RGBA rgba;
+ uint16_t channel[4];
+ };
+ static_assert(sizeof(Color) == 8, "BC6h::Color must be 8 bytes long");
+
+ inline int32_t extendSign(int32_t val, size_t size) {
+ // Suppose we have a 2-bit integer being stored in 4 bit variable:
+ // x = 0b00AB
+ //
+ // In order to sign extend x, we need to turn the 0s into A's:
+ // x_extend = 0bAAAB
+ //
+ // We can do that by flipping A in x then subtracting 0b0010 from x.
+ // Suppose A is 1:
+ // x = 0b001B
+ // x_flip = 0b000B
+ // x_minus = 0b111B
+ // Since A is flipped to 0, subtracting the mask sets it and all the bits above it to 1.
+ // And if A is 0:
+ // x = 0b000B
+ // x_flip = 0b001B
+ // x_minus = 0b000B
+ // We unset the bit we flipped, and touch no other bit
+ uint16_t mask = 1u << (size - 1);
+ return (val ^ mask) - mask;
+ }
+
+ static int constexpr RGBfChannels = 3;
+ struct RGBf {
+ uint16_t channel[RGBfChannels];
+ size_t size[RGBfChannels];
+ bool isSigned;
+
+ RGBf() {
+ static_assert(RGBfChannels == 3, "RGBf must have exactly 3 channels");
+ static_assert(sizeof(channel) / sizeof(channel[0]) == RGBfChannels, "RGBf must have exactly 3 channels");
+ static_assert(sizeof(channel) / sizeof(channel[0]) == sizeof(size) / sizeof(size[0]), "RGBf requires equally sized arrays for channels and channel sizes");
+
+ for (int i = 0; i < RGBfChannels; i++) {
+ channel[i] = 0;
+ size[i] = 0;
+ }
+
+ isSigned = false;
+ }
+
+ void extendSign() {
+ for (int i = 0; i < RGBfChannels; i++) {
+ channel[i] = BC6H::extendSign(channel[i], size[i]);
+ }
+ }
+
+ // Assuming this is the delta, take the base-endpoint and transform this into
+ // a proper endpoint.
+ //
+ // The final computed endpoint is truncated to the base-endpoint's size;
+ void resolveDelta(RGBf base) {
+ for (int i = 0; i < RGBfChannels; i++) {
+ size[i] = base.size[i];
+ channel[i] = (base.channel[i] + channel[i]) & ((1 << base.size[i]) - 1);
+ }
+
+ // Per the spec:
+ // "For signed formats, the results of the delta calculation must be sign
+ // extended as well."
+ if (isSigned) {
+ extendSign();
+ }
+ }
+
+ void unquantize() {
+ if (isSigned) {
+ unquantizeSigned();
+ } else {
+ unquantizeUnsigned();
+ }
+ }
+
+ void unquantizeUnsigned() {
+ for (int i = 0; i < RGBfChannels; i++) {
+ if (size[i] >= 15 || channel[i] == 0) {
+ continue;
+ } else if (channel[i] == ((1u << size[i]) - 1)) {
+ channel[i] = 0xFFFFu;
+ } else {
+ // Need 32 bits to avoid overflow
+ uint32_t tmp = channel[i];
+ channel[i] = (uint16_t) (((tmp << 16) + 0x8000) >> size[i]);
+ }
+ size[i] = 16;
+ }
+ }
+
+ void unquantizeSigned() {
+ for (int i = 0; i < RGBfChannels; i++) {
+ if (size[i] >= 16 || channel[i] == 0) {
+ continue;
+ }
+
+ int16_t value = (int16_t)channel[i];
+ int32_t result = value;
+ bool signBit = value < 0;
+ if (signBit) {
+ value = -value;
+ }
+
+ if (value >= ((1 << (size[i] - 1)) - 1)) {
+ result = 0x7FFF;
+ } else {
+ // Need 32 bits to avoid overflow
+ int32_t tmp = value;
+ result = (((tmp << 15) + 0x4000) >> (size[i] - 1));
+ }
+
+ if (signBit) {
+ result = -result;
+ }
+
+ channel[i] = (uint16_t) result;
+ size[i] = 16;
+ }
+ }
+ };
+
+ struct Data {
+ uint64_t low64;
+ uint64_t high64;
+
+ Data() = default;
+
+ Data(uint64_t low64, uint64_t high64)
+ : low64(low64), high64(high64) {
+ }
+
+ // Consumes the lowest N bits from from low64 and high64 where N is:
+ // abs(MSB - LSB)
+ // MSB and LSB come from the block description of the BC6h spec and specify
+ // the location of the bits in the returned bitstring.
+ //
+ // If MSB < LSB, then the bits are reversed. Otherwise, the bitstring is read and
+ // shifted without further modification.
+ //
+ uint32_t consumeBits(uint32_t MSB, uint32_t LSB) {
+ bool reversed = MSB < LSB;
+ if (reversed) {
+ std::swap(MSB, LSB);
+ }
+ assert(MSB - LSB + 1 < sizeof(uint32_t) * 8);
+
+ uint32_t numBits = MSB - LSB + 1;
+ uint32_t mask = (1 << numBits) - 1;
+ // Read the low N bits
+ uint32_t bits = (low64 & mask);
+
+ low64 >>= numBits;
+ // Put the low N bits of high64 into the high 64-N bits of low64
+ low64 |= (high64 & mask) << (sizeof(high64) * 8 - numBits);
+ high64 >>= numBits;
+
+ if (reversed) {
+ uint32_t tmp = 0;
+ for (uint32_t numSwaps = 0; numSwaps < numBits; numSwaps++) {
+ tmp <<= 1;
+ tmp |= (bits & 1);
+ bits >>= 1;
+ }
+
+ bits = tmp;
+ }
+
+ return bits << LSB;
+ }
+ };
+
+ struct IndexInfo {
+ uint64_t value;
+ int numBits;
+ };
+
+// Interpolates between two endpoints, then does a final unquantization step
+ Color interpolate(RGBf e0, RGBf e1, const IndexInfo &index, bool isSigned) {
+ static constexpr uint32_t weights3[] = {0, 9, 18, 27, 37, 46, 55, 64};
+ static constexpr uint32_t weights4[] = {0, 4, 9, 13, 17, 21, 26, 30,
+ 34, 38, 43, 47, 51, 55, 60, 64};
+ static constexpr uint32_t const *weightsN[] = {
+ nullptr, nullptr, nullptr, weights3, weights4
+ };
+ auto weights = weightsN[index.numBits];
+ assert(weights != nullptr);
+ Color color;
+ uint32_t e0Weight = 64 - weights[index.value];
+ uint32_t e1Weight = weights[index.value];
+
+ for (int i = 0; i < RGBfChannels; i++) {
+ int32_t e0Channel = e0.channel[i];
+ int32_t e1Channel = e1.channel[i];
+
+ if (isSigned) {
+ e0Channel = extendSign(e0Channel, 16);
+ e1Channel = extendSign(e1Channel, 16);
+ }
+
+ int32_t e0Value = e0Channel * e0Weight;
+ int32_t e1Value = e1Channel * e1Weight;
+
+ uint32_t tmp = ((e0Value + e1Value + 32) >> 6);
+
+ // Need to unquantize value to limit it to the legal range of half-precision
+ // floats. We do this by scaling by 31/32 or 31/64 depending on if the value
+ // is signed or unsigned.
+ if (isSigned) {
+ tmp = ((tmp & 0x80000000) != 0) ? (((~tmp + 1) * 31) >> 5) | 0x8000 : (tmp * 31) >> 5;
+ // Don't return -0.0f, just normalize it to 0.0f.
+ if (tmp == 0x8000)
+ tmp = 0;
+ } else {
+ tmp = (tmp * 31) >> 6;
+ }
+
+ color.channel[i] = (uint16_t) tmp;
+ }
+
+ return color;
+ }
+
+ enum DataType {
+ // Endpoints
+ EP0 = 0,
+ EP1 = 1,
+ EP2 = 2,
+ EP3 = 3,
+ Mode,
+ Partition,
+ End,
+ };
+
+ enum Channel {
+ R = 0,
+ G = 1,
+ B = 2,
+ None,
+ };
+
+ struct DeltaBits {
+ size_t channel[3];
+
+ constexpr DeltaBits()
+ : channel{0, 0, 0} {
+ }
+
+ constexpr DeltaBits(size_t r, size_t g, size_t b)
+ : channel{r, g, b} {
+ }
+ };
+
+ struct ModeDesc {
+ int number;
+ bool hasDelta;
+ int partitionCount;
+ int endpointBits;
+ DeltaBits deltaBits;
+
+ constexpr ModeDesc()
+ : number(-1), hasDelta(false), partitionCount(0), endpointBits(0) {
+ }
+
+ constexpr ModeDesc(int number, bool hasDelta, int partitionCount, int endpointBits, DeltaBits deltaBits)
+ : number(number), hasDelta(hasDelta), partitionCount(partitionCount), endpointBits(endpointBits), deltaBits(deltaBits) {
+ }
+ };
+
+ struct BlockDesc {
+ DataType type;
+ Channel channel;
+ int MSB;
+ int LSB;
+ ModeDesc modeDesc;
+
+ constexpr BlockDesc()
+ : type(End), channel(None), MSB(0), LSB(0), modeDesc() {
+ }
+
+ constexpr BlockDesc(const DataType type, Channel channel, int MSB, int LSB, ModeDesc modeDesc)
+ : type(type), channel(channel), MSB(MSB), LSB(LSB), modeDesc(modeDesc) {
+ }
+
+ constexpr BlockDesc(DataType type, Channel channel, int MSB, int LSB)
+ : type(type), channel(channel), MSB(MSB), LSB(LSB), modeDesc() {
+ }
+ };
+
+// Turns a legal mode into an index into the BlockDesc table.
+// Illegal or reserved modes return -1.
+ static int modeToIndex(uint8_t mode) {
+ if (mode <= 3) {
+ return mode;
+ } else if ((mode & 0x2) != 0) {
+ if (mode <= 18) {
+// Turns 6 into 4, 7 into 5, 10 into 6, etc.
+ return (mode / 2) + 1 + (mode & 0x1);
+ } else if (mode == 22 || mode == 26 || mode == 30) {
+// Turns 22 into 11, 26 into 12, etc.
+ return mode / 4 + 6;
+ }
+ }
+
+ return -1;
+ }
+
+// Returns a description of the bitfields for each mode from the LSB
+// to the MSB before the index data starts.
+//
+// The numbers come from the BC6h block description. Each BlockDesc in the
+// {Type, Channel, MSB, LSB}
+// * Type describes which endpoint this is, or if this is a mode, a partition
+// number, or the end of the block description.
+// * Channel describes one of the 3 color channels within an endpoint
+// * MSB and LSB specificy:
+// * The size of the bitfield being read
+// * The position of the bitfield within the variable it is being read to
+// * If the bitfield is stored in reverse bit order
+// If MSB < LSB then the bitfield is stored in reverse order. The size of
+// the bitfield is abs(MSB-LSB+1). And the position of the bitfield within
+// the variable is min(LSB, MSB).
+//
+// Invalid or reserved modes return an empty list.
+ static constexpr int NumBlocks = 14;
+// The largest number of descriptions within a block.
+ static constexpr int MaxBlockDescIndex = 26;
+ static constexpr BlockDesc blockDescs[NumBlocks][MaxBlockDescIndex] = {
+// @fmt:off
+// Mode 0, Index 0
+{
+{ Mode, None, 1, 0, { 0, true, 2, 10, { 5, 5, 5 } } },
+{ EP2, G, 4, 4 }, { EP2, B, 4, 4 }, { EP3, B, 4, 4 },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 4, 0 }, { EP3, G, 4, 4 }, { EP2, G, 3, 0 },
+{ EP1, G, 4, 0 }, { EP3, B, 0, 0 }, { EP3, G, 3, 0 },
+{ EP1, B, 4, 0 }, { EP3, B, 1, 1 }, { EP2, B, 3, 0 },
+{ EP2, R, 4, 0 }, { EP3, B, 2, 2 }, { EP3, R, 4, 0 },
+{ EP3, B, 3, 3 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 1, Index 1
+{
+{ Mode, None, 1, 0, { 1, true, 2, 7, { 6, 6, 6 } } },
+{ EP2, G, 5, 5 }, { EP3, G, 5, 4 }, { EP0, R, 6, 0 },
+{ EP3, B, 1, 0 }, { EP2, B, 4, 4 }, { EP0, G, 6, 0 },
+{ EP2, B, 5, 5 }, { EP3, B, 2, 2 }, { EP2, G, 4, 4 },
+{ EP0, B, 6, 0 }, { EP3, B, 3, 3 }, { EP3, B, 5, 5 },
+{ EP3, B, 4, 4 }, { EP1, R, 5, 0 }, { EP2, G, 3, 0 },
+{ EP1, G, 5, 0 }, { EP3, G, 3, 0 }, { EP1, B, 5, 0 },
+{ EP2, B, 3, 0 }, { EP2, R, 5, 0 }, { EP3, R, 5, 0 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 2, Index 2
+{
+{ Mode, None, 4, 0, { 2, true, 2, 11, { 5, 4, 4 } } },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 4, 0 }, { EP0, R, 10, 10 }, { EP2, G, 3, 0 },
+{ EP1, G, 3, 0 }, { EP0, G, 10, 10 }, { EP3, B, 0, 0 },
+{ EP3, G, 3, 0 }, { EP1, B, 3, 0 }, { EP0, B, 10, 10 },
+{ EP3, B, 1, 1 }, { EP2, B, 3, 0 }, { EP2, R, 4, 0 },
+{ EP3, B, 2, 2 }, { EP3, R, 4, 0 }, { EP3, B, 3, 3 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 3, Index 3
+{
+{ Mode, None, 4, 0, { 3, false, 1, 10, { 0, 0, 0 } } },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 9, 0 }, { EP1, G, 9, 0 }, { EP1, B, 9, 0 },
+{ End, None, 0, 0},
+},
+// Mode 6, Index 4
+{
+{ Mode, None, 4, 0, { 6, true, 2, 11, { 4, 5, 4 } } }, // 1 1
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 3, 0 }, { EP0, R, 10, 10 }, { EP3, G, 4, 4 },
+{ EP2, G, 3, 0 }, { EP1, G, 4, 0 }, { EP0, G, 10, 10 },
+{ EP3, G, 3, 0 }, { EP1, B, 3, 0 }, { EP0, B, 10, 10 },
+{ EP3, B, 1, 1 }, { EP2, B, 3, 0 }, { EP2, R, 3, 0 },
+{ EP3, B, 0, 0 }, { EP3, B, 2, 2 }, { EP3, R, 3, 0 }, // 18 19
+{ EP2, G, 4, 4 }, { EP3, B, 3, 3 }, // 2 21
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 7, Index 5
+{
+{ Mode, None, 4, 0, { 7, true, 1, 11, { 9, 9, 9 } } },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 8, 0 }, { EP0, R, 10, 10 }, { EP1, G, 8, 0 },
+{ EP0, G, 10, 10 }, { EP1, B, 8, 0 }, { EP0, B, 10, 10 },
+{ End, None, 0, 0},
+},
+// Mode 10, Index 6
+{
+{ Mode, None, 4, 0, { 10, true, 2, 11, { 4, 4, 5 } } },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 3, 0 }, { EP0, R, 10, 10 }, { EP2, B, 4, 4 },
+{ EP2, G, 3, 0 }, { EP1, G, 3, 0 }, { EP0, G, 10, 10 },
+{ EP3, B, 0, 0 }, { EP3, G, 3, 0 }, { EP1, B, 4, 0 },
+{ EP0, B, 10, 10 }, { EP2, B, 3, 0 }, { EP2, R, 3, 0 },
+{ EP3, B, 1, 1 }, { EP3, B, 2, 2 }, { EP3, R, 3, 0 },
+{ EP3, B, 4, 4 }, { EP3, B, 3, 3 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 11, Index 7
+{
+{ Mode, None, 4, 0, { 11, true, 1, 12, { 8, 8, 8 } } },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 7, 0 }, { EP0, R, 10, 11 }, { EP1, G, 7, 0 },
+{ EP0, G, 10, 11 }, { EP1, B, 7, 0 }, { EP0, B, 10, 11 },
+{ End, None, 0, 0},
+},
+// Mode 14, Index 8
+{
+{ Mode, None, 4, 0, { 14, true, 2, 9, { 5, 5, 5 } } },
+{ EP0, R, 8, 0 }, { EP2, B, 4, 4 }, { EP0, G, 8, 0 },
+{ EP2, G, 4, 4 }, { EP0, B, 8, 0 }, { EP3, B, 4, 4 },
+{ EP1, R, 4, 0 }, { EP3, G, 4, 4 }, { EP2, G, 3, 0 },
+{ EP1, G, 4, 0 }, { EP3, B, 0, 0 }, { EP3, G, 3, 0 },
+{ EP1, B, 4, 0 }, { EP3, B, 1, 1 }, { EP2, B, 3, 0 },
+{ EP2, R, 4, 0 }, { EP3, B, 2, 2 }, { EP3, R, 4, 0 },
+{ EP3, B, 3, 3 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 15, Index 9
+{
+{ Mode, None, 4, 0, { 15, true, 1, 16, { 4, 4, 4 } } },
+{ EP0, R, 9, 0 }, { EP0, G, 9, 0 }, { EP0, B, 9, 0 },
+{ EP1, R, 3, 0 }, { EP0, R, 10, 15 }, { EP1, G, 3, 0 },
+{ EP0, G, 10, 15 }, { EP1, B, 3, 0 }, { EP0, B, 10, 15 },
+{ End, None, 0, 0},
+},
+// Mode 18, Index 10
+{
+{ Mode, None, 4, 0, { 18, true, 2, 8, { 6, 5, 5 } } },
+{ EP0, R, 7, 0 }, { EP3, G, 4, 4 }, { EP2, B, 4, 4 },
+{ EP0, G, 7, 0 }, { EP3, B, 2, 2 }, { EP2, G, 4, 4 },
+{ EP0, B, 7, 0 }, { EP3, B, 3, 3 }, { EP3, B, 4, 4 },
+{ EP1, R, 5, 0 }, { EP2, G, 3, 0 }, { EP1, G, 4, 0 },
+{ EP3, B, 0, 0 }, { EP3, G, 3, 0 }, { EP1, B, 4, 0 },
+{ EP3, B, 1, 1 }, { EP2, B, 3, 0 }, { EP2, R, 5, 0 },
+{ EP3, R, 5, 0 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 22, Index 11
+{
+{ Mode, None, 4, 0, { 22, true, 2, 8, { 5, 6, 5 } } },
+{ EP0, R, 7, 0 }, { EP3, B, 0, 0 }, { EP2, B, 4, 4 },
+{ EP0, G, 7, 0 }, { EP2, G, 5, 5 }, { EP2, G, 4, 4 },
+{ EP0, B, 7, 0 }, { EP3, G, 5, 5 }, { EP3, B, 4, 4 },
+{ EP1, R, 4, 0 }, { EP3, G, 4, 4 }, { EP2, G, 3, 0 },
+{ EP1, G, 5, 0 }, { EP3, G, 3, 0 }, { EP1, B, 4, 0 },
+{ EP3, B, 1, 1 }, { EP2, B, 3, 0 }, { EP2, R, 4, 0 },
+{ EP3, B, 2, 2 }, { EP3, R, 4, 0 }, { EP3, B, 3, 3 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 26, Index 12
+{
+{ Mode, None, 4, 0, { 26, true, 2, 8, { 5, 5, 6 } } },
+{ EP0, R, 7, 0 }, { EP3, B, 1, 1 }, { EP2, B, 4, 4 },
+{ EP0, G, 7, 0 }, { EP2, B, 5, 5 }, { EP2, G, 4, 4 },
+{ EP0, B, 7, 0 }, { EP3, B, 5, 5 }, { EP3, B, 4, 4 },
+{ EP1, R, 4, 0 }, { EP3, G, 4, 4 }, { EP2, G, 3, 0 },
+{ EP1, G, 4, 0 }, { EP3, B, 0, 0 }, { EP3, G, 3, 0 },
+{ EP1, B, 5, 0 }, { EP2, B, 3, 0 }, { EP2, R, 4, 0 },
+{ EP3, B, 2, 2 }, { EP3, R, 4, 0 }, { EP3, B, 3, 3 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+},
+// Mode 30, Index 13
+{
+{ Mode, None, 4, 0, { 30, false, 2, 6, { 0, 0, 0 } } },
+{ EP0, R, 5, 0 }, { EP3, G, 4, 4 }, { EP3, B, 0, 0 },
+{ EP3, B, 1, 1 }, { EP2, B, 4, 4 }, { EP0, G, 5, 0 },
+{ EP2, G, 5, 5 }, { EP2, B, 5, 5 }, { EP3, B, 2, 2 },
+{ EP2, G, 4, 4 }, { EP0, B, 5, 0 }, { EP3, G, 5, 5 },
+{ EP3, B, 3, 3 }, { EP3, B, 5, 5 }, { EP3, B, 4, 4 },
+{ EP1, R, 5, 0 }, { EP2, G, 3, 0 }, { EP1, G, 5, 0 },
+{ EP3, G, 3, 0 }, { EP1, B, 5, 0 }, { EP2, B, 3, 0 },
+{ EP2, R, 5, 0 }, { EP3, R, 5, 0 },
+{ Partition, None, 4, 0 },
+{ End, None, 0, 0},
+}
+// @fmt:on
+ };
+
+ struct Block {
+ uint64_t low64;
+ uint64_t high64;
+
+ void decode(uint8_t *dst, size_t dstX, size_t dstY, size_t dstWidth, size_t dstHeight, size_t dstPitch, size_t dstBpp, bool isSigned) const {
+ uint8_t mode = 0;
+ Data data(low64, high64);
+ assert(dstBpp == sizeof(Color));
+
+ if ((data.low64 & 0x2) == 0) {
+ mode = data.consumeBits(1, 0);
+ } else {
+ mode = data.consumeBits(4, 0);
+ }
+
+ int blockIndex = modeToIndex(mode);
+ // Handle illegal or reserved mode
+ if (blockIndex == -1) {
+ for (int y = 0; y < 4 && y + dstY < dstHeight; y++) {
+ for (int x = 0; x < 4 && x + dstX < dstWidth; x++) {
+ auto out = reinterpret_cast<Color *>(dst + sizeof(Color) * x + dstPitch * y);
+ out->rgba = {0, 0, 0};
+ }
+ }
+ return;
+ }
+ const BlockDesc *blockDesc = blockDescs[blockIndex];
+
+ RGBf e[4];
+ e[0].isSigned = e[1].isSigned = e[2].isSigned = e[3].isSigned = isSigned;
+
+ int partition = 0;
+ ModeDesc modeDesc;
+ for (int index = 0; blockDesc[index].type != End; index++) {
+ const BlockDesc desc = blockDesc[index];
+
+ switch (desc.type) {
+ case Mode:
+ modeDesc = desc.modeDesc;
+ assert(modeDesc.number == mode);
+
+ e[0].size[0] = e[0].size[1] = e[0].size[2] = modeDesc.endpointBits;
+ for (int i = 0; i < RGBfChannels; i++) {
+ if (modeDesc.hasDelta) {
+ e[1].size[i] = e[2].size[i] = e[3].size[i] = modeDesc.deltaBits.channel[i];
+ } else {
+ e[1].size[i] = e[2].size[i] = e[3].size[i] = modeDesc.endpointBits;
+ }
+ }
+ break;
+ case Partition:
+ partition |= data.consumeBits(desc.MSB, desc.LSB);
+ break;
+ case EP0:
+ case EP1:
+ case EP2:
+ case EP3:
+ e[desc.type].channel[desc.channel] |= data.consumeBits(desc.MSB, desc.LSB);
+ break;
+ default:
+ assert(false);
+ return;
+ }
+ }
+
+ // Sign extension
+ if (isSigned) {
+ for (int ep = 0; ep < modeDesc.partitionCount * 2; ep++) {
+ e[ep].extendSign();
+ }
+ } else if (modeDesc.hasDelta) {
+ // Don't sign-extend the base endpoint in an unsigned format.
+ for (int ep = 1; ep < modeDesc.partitionCount * 2; ep++) {
+ e[ep].extendSign();
+ }
+ }
+
+ // Turn the deltas into endpoints
+ if (modeDesc.hasDelta) {
+ for (int ep = 1; ep < modeDesc.partitionCount * 2; ep++) {
+ e[ep].resolveDelta(e[0]);
+ }
+ }
+
+ for (int ep = 0; ep < modeDesc.partitionCount * 2; ep++) {
+ e[ep].unquantize();
+ }
+
+ // Get the indices, calculate final colors, and output
+ for (int y = 0; y < 4; y++) {
+ for (int x = 0; x < 4; x++) {
+ int pixelNum = x + y * 4;
+ IndexInfo idx;
+ bool isAnchor = false;
+ int firstEndpoint = 0;
+ // Bc6H can have either 1 or 2 petitions depending on the mode.
+ // The number of petitions affects the number of indices with implicit
+ // leading 0 bits and the number of bits per index.
+ if (modeDesc.partitionCount == 1) {
+ idx.numBits = 4;
+ // There's an implicit leading 0 bit for the first idx
+ isAnchor = (pixelNum == 0);
+ } else {
+ idx.numBits = 3;
+ // There are 2 indices with implicit leading 0-bits.
+ isAnchor = ((pixelNum == 0) || (pixelNum == AnchorTable2[partition]));
+ firstEndpoint = PartitionTable2[partition][pixelNum] * 2;
+ }
+
+ idx.value = data.consumeBits(idx.numBits - isAnchor - 1, 0);
+
+ // Don't exit the loop early, we need to consume these index bits regardless if
+ // we actually output them or not.
+ if ((y + dstY >= dstHeight) || (x + dstX >= dstWidth)) {
+ continue;
+ }
+
+ Color color = interpolate(e[firstEndpoint], e[firstEndpoint + 1], idx, isSigned);
+ auto out = reinterpret_cast<Color *>(dst + dstBpp * x + dstPitch * y);
+ *out = color;
+ }
+ }
+ }
+ };
+
+ } // namespace BC6H
+
+ namespace BC7 {
+// https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_compression_bptc.txt
+// https://docs.microsoft.com/en-us/windows/win32/direct3d11/bc7-format
+
+ struct Bitfield {
+ int offset;
+ int count;
+
+ constexpr Bitfield Then(const int bits) { return {offset + count, bits}; }
+
+ constexpr bool operator==(const Bitfield &rhs) {
+ return offset == rhs.offset && count == rhs.count;
+ }
+ };
+
+ struct Mode {
+ const int IDX; // Mode index
+ const int NS; // Number of subsets in each partition
+ const int PB; // Partition bits
+ const int RB; // Rotation bits
+ const int ISB; // Index selection bits
+ const int CB; // Color bits
+ const int AB; // Alpha bits
+ const int EPB; // Endpoint P-bits
+ const int SPB; // Shared P-bits
+ const int IB; // Primary index bits per element
+ const int IBC; // Primary index bits total
+ const int IB2; // Secondary index bits per element
+
+ constexpr int NumColors() const { return NS * 2; }
+
+ constexpr Bitfield Partition() const { return {IDX + 1, PB}; }
+
+ constexpr Bitfield Rotation() const { return Partition().Then(RB); }
+
+ constexpr Bitfield IndexSelection() const { return Rotation().Then(ISB); }
+
+ constexpr Bitfield Red(int idx) const {
+ return IndexSelection().Then(CB * idx).Then(CB);
+ }
+
+ constexpr Bitfield Green(int idx) const {
+ return Red(NumColors() - 1).Then(CB * idx).Then(CB);
+ }
+
+ constexpr Bitfield Blue(int idx) const {
+ return Green(NumColors() - 1).Then(CB * idx).Then(CB);
+ }
+
+ constexpr Bitfield Alpha(int idx) const {
+ return Blue(NumColors() - 1).Then(AB * idx).Then(AB);
+ }
+
+ constexpr Bitfield EndpointPBit(int idx) const {
+ return Alpha(NumColors() - 1).Then(EPB * idx).Then(EPB);
+ }
+
+ constexpr Bitfield SharedPBit0() const {
+ return EndpointPBit(NumColors() - 1).Then(SPB);
+ }
+
+ constexpr Bitfield SharedPBit1() const {
+ return SharedPBit0().Then(SPB);
+ }
+
+ constexpr Bitfield PrimaryIndex(int offset, int count) const {
+ return SharedPBit1().Then(offset).Then(count);
+ }
+
+ constexpr Bitfield SecondaryIndex(int offset, int count) const {
+ return SharedPBit1().Then(IBC + offset).Then(count);
+ }
+ };
+
+ static constexpr Mode Modes[] = {
+ // IDX NS PB RB ISB CB AB EPB SPB IB IBC, IB2
+ /**/ {0x0, 0x3, 0x4, 0x0, 0x0, 0x4, 0x0, 0x1, 0x0, 0x3, 0x2d, 0x0},
+/**/ {0x1, 0x2, 0x6, 0x0, 0x0, 0x6, 0x0, 0x0, 0x1, 0x3, 0x2e, 0x0},
+/**/ {0x2, 0x3, 0x6, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x2, 0x1d, 0x0},
+/**/ {0x3, 0x2, 0x6, 0x0, 0x0, 0x7, 0x0, 0x1, 0x0, 0x2, 0x1e, 0x0},
+/**/ {0x4, 0x1, 0x0, 0x2, 0x1, 0x5, 0x6, 0x0, 0x0, 0x2, 0x1f, 0x3},
+/**/ {0x5, 0x1, 0x0, 0x2, 0x0, 0x7, 0x8, 0x0, 0x0, 0x2, 0x1f, 0x2},
+/**/ {0x6, 0x1, 0x0, 0x0, 0x0, 0x7, 0x7, 0x1, 0x0, 0x4, 0x3f, 0x0},
+/**/ {0x7, 0x2, 0x6, 0x0, 0x0, 0x5, 0x5, 0x1, 0x0, 0x2, 0x1e, 0x0},
+/**/ {-1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x00, 0x0},
+ };
+
+ static constexpr int MaxPartitions = 64;
+ static constexpr int MaxSubsets = 3;
+
+ static constexpr uint8_t PartitionTable2[MaxPartitions][16] = {
+ {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1},
+ {0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1},
+ {0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1},
+ {0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1},
+ {0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1},
+ {0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1},
+ {0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1},
+ {0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1},
+ {0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0},
+ {0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0},
+ {0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0},
+ {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0},
+ {0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1},
+ {0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0},
+ {0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0},
+ {0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0},
+ {0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0},
+ {0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0},
+ {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
+ {0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0},
+ {0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0},
+ {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
+ {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1},
+ {0, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0},
+ {0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0},
+ {0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0},
+ {0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0},
+ {0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0, 1},
+ {0, 1, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1},
+ {0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0},
+ {0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0},
+ {0, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0},
+ {0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0},
+ {0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0},
+ {0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1},
+ {0, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1},
+ {0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0},
+ {0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0},
+ {0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0},
+ {0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0},
+ {0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1},
+ {0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 1},
+ {0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0},
+ {0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0},
+ {0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 1},
+ {0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1},
+ {0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1},
+ {0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1},
+ {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1},
+ {0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0},
+ {0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0},
+ {0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 1, 1, 1},
+ };
+
+ static constexpr uint8_t PartitionTable3[MaxPartitions][16] = {
+ {0, 0, 1, 1, 0, 0, 1, 1, 0, 2, 2, 1, 2, 2, 2, 2},
+ {0, 0, 0, 1, 0, 0, 1, 1, 2, 2, 1, 1, 2, 2, 2, 1},
+ {0, 0, 0, 0, 2, 0, 0, 1, 2, 2, 1, 1, 2, 2, 1, 1},
+ {0, 2, 2, 2, 0, 0, 2, 2, 0, 0, 1, 1, 0, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 2, 2},
+ {0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 2, 2},
+ {0, 0, 2, 2, 0, 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2},
+ {0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2},
+ {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2},
+ {0, 0, 1, 2, 0, 0, 1, 2, 0, 0, 1, 2, 0, 0, 1, 2},
+ {0, 1, 1, 2, 0, 1, 1, 2, 0, 1, 1, 2, 0, 1, 1, 2},
+ {0, 1, 2, 2, 0, 1, 2, 2, 0, 1, 2, 2, 0, 1, 2, 2},
+ {0, 0, 1, 1, 0, 1, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2},
+ {0, 0, 1, 1, 2, 0, 0, 1, 2, 2, 0, 0, 2, 2, 2, 0},
+ {0, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1, 2, 1, 1, 2, 2},
+ {0, 1, 1, 1, 0, 0, 1, 1, 2, 0, 0, 1, 2, 2, 0, 0},
+ {0, 0, 0, 0, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2},
+ {0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 2, 2, 1, 1, 1, 1},
+ {0, 1, 1, 1, 0, 1, 1, 1, 0, 2, 2, 2, 0, 2, 2, 2},
+ {0, 0, 0, 1, 0, 0, 0, 1, 2, 2, 2, 1, 2, 2, 2, 1},
+ {0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 2, 0, 1, 2, 2},
+ {0, 0, 0, 0, 1, 1, 0, 0, 2, 2, 1, 0, 2, 2, 1, 0},
+ {0, 1, 2, 2, 0, 1, 2, 2, 0, 0, 1, 1, 0, 0, 0, 0},
+ {0, 0, 1, 2, 0, 0, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2},
+ {0, 1, 1, 0, 1, 2, 2, 1, 1, 2, 2, 1, 0, 1, 1, 0},
+ {0, 0, 0, 0, 0, 1, 1, 0, 1, 2, 2, 1, 1, 2, 2, 1},
+ {0, 0, 2, 2, 1, 1, 0, 2, 1, 1, 0, 2, 0, 0, 2, 2},
+ {0, 1, 1, 0, 0, 1, 1, 0, 2, 0, 0, 2, 2, 2, 2, 2},
+ {0, 0, 1, 1, 0, 1, 2, 2, 0, 1, 2, 2, 0, 0, 1, 1},
+ {0, 0, 0, 0, 2, 0, 0, 0, 2, 2, 1, 1, 2, 2, 2, 1},
+ {0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 2, 1, 2, 2, 2},
+ {0, 2, 2, 2, 0, 0, 2, 2, 0, 0, 1, 2, 0, 0, 1, 1},
+ {0, 0, 1, 1, 0, 0, 1, 2, 0, 0, 2, 2, 0, 2, 2, 2},
+ {0, 1, 2, 0, 0, 1, 2, 0, 0, 1, 2, 0, 0, 1, 2, 0},
+ {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0},
+ {0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2, 0},
+ {0, 1, 2, 0, 2, 0, 1, 2, 1, 2, 0, 1, 0, 1, 2, 0},
+ {0, 0, 1, 1, 2, 2, 0, 0, 1, 1, 2, 2, 0, 0, 1, 1},
+ {0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 0, 0, 0, 0, 1, 1},
+ {0, 1, 0, 1, 0, 1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2},
+ {0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 2, 1, 2, 1, 2, 1},
+ {0, 0, 2, 2, 1, 1, 2, 2, 0, 0, 2, 2, 1, 1, 2, 2},
+ {0, 0, 2, 2, 0, 0, 1, 1, 0, 0, 2, 2, 0, 0, 1, 1},
+ {0, 2, 2, 0, 1, 2, 2, 1, 0, 2, 2, 0, 1, 2, 2, 1},
+ {0, 1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 1, 0, 1},
+ {0, 0, 0, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1},
+ {0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 2, 2, 2},
+ {0, 2, 2, 2, 0, 1, 1, 1, 0, 2, 2, 2, 0, 1, 1, 1},
+ {0, 0, 0, 2, 1, 1, 1, 2, 0, 0, 0, 2, 1, 1, 1, 2},
+ {0, 0, 0, 0, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2},
+ {0, 2, 2, 2, 0, 1, 1, 1, 0, 1, 1, 1, 0, 2, 2, 2},
+ {0, 0, 0, 2, 1, 1, 1, 2, 1, 1, 1, 2, 0, 0, 0, 2},
+ {0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 2, 2, 2, 2},
+ {0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2, 2, 1, 1, 2},
+ {0, 1, 1, 0, 0, 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, 2},
+ {0, 0, 2, 2, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 2, 2},
+ {0, 0, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 0, 0, 2, 2},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 1, 2},
+ {0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1},
+ {0, 2, 2, 2, 1, 2, 2, 2, 0, 2, 2, 2, 1, 2, 2, 2},
+ {0, 1, 0, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
+ {0, 1, 1, 1, 2, 0, 1, 1, 2, 2, 0, 1, 2, 2, 2, 0},
+ };
+
+ static constexpr uint8_t AnchorTable2[MaxPartitions] = {
+// @fmt:off
+0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf,
+0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf,
+0xf, 0x2, 0x8, 0x2, 0x2, 0x8, 0x8, 0xf,
+0x2, 0x8, 0x2, 0x2, 0x8, 0x8, 0x2, 0x2,
+0xf, 0xf, 0x6, 0x8, 0x2, 0x8, 0xf, 0xf,
+0x2, 0x8, 0x2, 0x2, 0x2, 0xf, 0xf, 0x6,
+0x6, 0x2, 0x6, 0x8, 0xf, 0xf, 0x2, 0x2,
+0xf, 0xf, 0xf, 0xf, 0xf, 0x2, 0x2, 0xf,
+// @fmt:on
+ };
+
+ static constexpr uint8_t AnchorTable3a[MaxPartitions] = {
+// @fmt:off
+0x3, 0x3, 0xf, 0xf, 0x8, 0x3, 0xf, 0xf,
+0x8, 0x8, 0x6, 0x6, 0x6, 0x5, 0x3, 0x3,
+0x3, 0x3, 0x8, 0xf, 0x3, 0x3, 0x6, 0xa,
+0x5, 0x8, 0x8, 0x6, 0x8, 0x5, 0xf, 0xf,
+0x8, 0xf, 0x3, 0x5, 0x6, 0xa, 0x8, 0xf,
+0xf, 0x3, 0xf, 0x5, 0xf, 0xf, 0xf, 0xf,
+0x3, 0xf, 0x5, 0x5, 0x5, 0x8, 0x5, 0xa,
+0x5, 0xa, 0x8, 0xd, 0xf, 0xc, 0x3, 0x3,
+// @fmt:on
+ };
+
+ static constexpr uint8_t AnchorTable3b[MaxPartitions] = {
+// @fmt:off
+0xf, 0x8, 0x8, 0x3, 0xf, 0xf, 0x3, 0x8,
+0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf, 0x8,
+0xf, 0x8, 0xf, 0x3, 0xf, 0x8, 0xf, 0x8,
+0x3, 0xf, 0x6, 0xa, 0xf, 0xf, 0xa, 0x8,
+0xf, 0x3, 0xf, 0xa, 0xa, 0x8, 0x9, 0xa,
+0x6, 0xf, 0x8, 0xf, 0x3, 0x6, 0x6, 0x8,
+0xf, 0x3, 0xf, 0xf, 0xf, 0xf, 0xf, 0xf,
+0xf, 0xf, 0xf, 0xf, 0x3, 0xf, 0xf, 0x8,
+// @fmt:on
+ };
+
+ struct Color {
+ struct RGB {
+ RGB() = default;
+
+ RGB(uint8_t r, uint8_t g, uint8_t b)
+ : b(b), g(g), r(r) {}
+
+ RGB(int r, int g, int b)
+ : b(static_cast<uint8_t>(b)), g(static_cast<uint8_t>(g)), r(static_cast<uint8_t>(r)) {}
+
+ RGB operator<<(int shift) const { return {r << shift, g << shift, b << shift}; }
+
+ RGB operator>>(int shift) const { return {r >> shift, g >> shift, b >> shift}; }
+
+ RGB operator|(int bits) const { return {r | bits, g | bits, b | bits}; }
+
+ RGB operator|(const RGB &rhs) const { return {r | rhs.r, g | rhs.g, b | rhs.b}; }
+
+ RGB operator+(const RGB &rhs) const { return {r + rhs.r, g + rhs.g, b + rhs.b}; }
+
+ uint8_t b;
+ uint8_t g;
+ uint8_t r;
+ };
+
+ RGB rgb;
+ uint8_t a;
+ };
+
+ static_assert(sizeof(Color) == 4, "Color size must be 4 bytes");
+
+ struct Block {
+ constexpr uint64_t Get(const Bitfield &bf) const {
+ uint64_t mask = (1ULL << bf.count) - 1;
+ if (bf.offset + bf.count <= 64) {
+ return (low >> bf.offset) & mask;
+ }
+ if (bf.offset >= 64) {
+ return (high >> (bf.offset - 64)) & mask;
+ }
+ return ((low >> bf.offset) | (high << (64 - bf.offset))) & mask;
+ }
+
+ const Mode &mode() const {
+ if ((low & 0b00000001) != 0) {
+ return Modes[0];
+ }
+ if ((low & 0b00000010) != 0) {
+ return Modes[1];
+ }
+ if ((low & 0b00000100) != 0) {
+ return Modes[2];
+ }
+ if ((low & 0b00001000) != 0) {
+ return Modes[3];
+ }
+ if ((low & 0b00010000) != 0) {
+ return Modes[4];
+ }
+ if ((low & 0b00100000) != 0) {
+ return Modes[5];
+ }
+ if ((low & 0b01000000) != 0) {
+ return Modes[6];
+ }
+ if ((low & 0b10000000) != 0) {
+ return Modes[7];
+ }
+ return Modes[8]; // Invalid mode
+ }
+
+ struct IndexInfo {
+ uint64_t value;
+ int numBits;
+ };
+
+ uint8_t interpolate(uint8_t e0, uint8_t e1, const IndexInfo &index) const {
+ static constexpr uint16_t weights2[] = {0, 21, 43, 64};
+ static constexpr uint16_t weights3[] = {0, 9, 18, 27, 37, 46, 55, 64};
+ static constexpr uint16_t weights4[] = {0, 4, 9, 13, 17, 21, 26, 30,
+ 34, 38, 43, 47, 51, 55, 60, 64};
+ static constexpr uint16_t const *weightsN[] = {
+ nullptr, nullptr, weights2, weights3, weights4
+ };
+ auto weights = weightsN[index.numBits];
+ assert(weights != nullptr);
+ return (uint8_t) (((64 - weights[index.value]) * uint16_t(e0) + weights[index.value] * uint16_t(e1) + 32) >> 6);
+ }
+
+ void decode(uint8_t *dst, size_t dstX, size_t dstY, size_t dstWidth, size_t dstHeight, size_t dstPitch) const {
+ auto const &mode = this->mode();
+
+ if (mode.IDX < 0) // Invalid mode:
+ {
+ for (size_t y = 0; y < 4 && y + dstY < dstHeight; y++) {
+ for (size_t x = 0; x < 4 && x + dstX < dstWidth; x++) {
+ auto out = reinterpret_cast<Color *>(dst + sizeof(Color) * x + dstPitch * y);
+ out->rgb = {0, 0, 0};
+ out->a = 0;
+ }
+ }
+ return;
+ }
+
+ using Endpoint = std::array<Color, 2>;
+ std::array<Endpoint, MaxSubsets> subsets;
+
+ for (size_t i = 0; i < mode.NS; i++) {
+ auto &subset = subsets[i];
+ subset[0].rgb.r = Get(mode.Red(i * 2 + 0));
+ subset[0].rgb.g = Get(mode.Green(i * 2 + 0));
+ subset[0].rgb.b = Get(mode.Blue(i * 2 + 0));
+ subset[0].a = (mode.AB > 0) ? Get(mode.Alpha(i * 2 + 0)) : 255;
+
+ subset[1].rgb.r = Get(mode.Red(i * 2 + 1));
+ subset[1].rgb.g = Get(mode.Green(i * 2 + 1));
+ subset[1].rgb.b = Get(mode.Blue(i * 2 + 1));
+ subset[1].a = (mode.AB > 0) ? Get(mode.Alpha(i * 2 + 1)) : 255;
+ }
+
+ if (mode.SPB > 0) {
+ auto pbit0 = Get(mode.SharedPBit0());
+ auto pbit1 = Get(mode.SharedPBit1());
+ subsets[0][0].rgb = (subsets[0][0].rgb << 1) | pbit0;
+ subsets[0][1].rgb = (subsets[0][1].rgb << 1) | pbit0;
+ subsets[1][0].rgb = (subsets[1][0].rgb << 1) | pbit1;
+ subsets[1][1].rgb = (subsets[1][1].rgb << 1) | pbit1;
+ }
+
+ if (mode.EPB > 0) {
+ for (size_t i = 0; i < mode.NS; i++) {
+ auto &subset = subsets[i];
+ auto pbit0 = Get(mode.EndpointPBit(i * 2 + 0));
+ auto pbit1 = Get(mode.EndpointPBit(i * 2 + 1));
+ subset[0].rgb = (subset[0].rgb << 1) | pbit0;
+ subset[1].rgb = (subset[1].rgb << 1) | pbit1;
+ if (mode.AB > 0) {
+ subset[0].a = (subset[0].a << 1) | pbit0;
+ subset[1].a = (subset[1].a << 1) | pbit1;
+ }
+ }
+ }
+
+ auto const colorBits = mode.CB + mode.SPB + mode.EPB;
+ auto const alphaBits = mode.AB + mode.SPB + mode.EPB;
+
+ for (size_t i = 0; i < mode.NS; i++) {
+ auto &subset = subsets[i];
+ subset[0].rgb = subset[0].rgb << (8 - colorBits);
+ subset[1].rgb = subset[1].rgb << (8 - colorBits);
+ subset[0].rgb = subset[0].rgb | (subset[0].rgb >> colorBits);
+ subset[1].rgb = subset[1].rgb | (subset[1].rgb >> colorBits);
+
+ if (mode.AB > 0) {
+ subset[0].a = subset[0].a << (8 - alphaBits);
+ subset[1].a = subset[1].a << (8 - alphaBits);
+ subset[0].a = subset[0].a | (subset[0].a >> alphaBits);
+ subset[1].a = subset[1].a | (subset[1].a >> alphaBits);
+ }
+ }
+
+ int colorIndexBitOffset = 0;
+ int alphaIndexBitOffset = 0;
+ for (int y = 0; y < 4; y++) {
+ for (int x = 0; x < 4; x++) {
+ auto texelIdx = y * 4 + x;
+ auto partitionIdx = Get(mode.Partition());
+ assert(partitionIdx < MaxPartitions);
+ auto subsetIdx = subsetIndex(mode, partitionIdx, texelIdx);
+ assert(subsetIdx < MaxSubsets);
+ auto const &subset = subsets[subsetIdx];
+
+ auto anchorIdx = anchorIndex(mode, partitionIdx, subsetIdx);
+ auto isAnchor = anchorIdx == texelIdx;
+ auto colorIdx = colorIndex(mode, isAnchor, colorIndexBitOffset);
+ auto alphaIdx = alphaIndex(mode, isAnchor, alphaIndexBitOffset);
+
+ if (y + dstY >= dstHeight || x + dstX >= dstWidth) {
+ // Don't be tempted to skip early at the loops:
+ // The calls to colorIndex() and alphaIndex() adjust bit
+ // offsets that need to be carefully tracked.
+ continue;
+ }
+
+ Color output;
+ // Note: We flip r and b channels past this point as the texture storage is BGR while the output is RGB
+ output.rgb.r = interpolate(subset[0].rgb.b, subset[1].rgb.b, colorIdx);
+ output.rgb.g = interpolate(subset[0].rgb.g, subset[1].rgb.g, colorIdx);
+ output.rgb.b = interpolate(subset[0].rgb.r, subset[1].rgb.r, colorIdx);
+ output.a = interpolate(subset[0].a, subset[1].a, alphaIdx);
+
+ switch (Get(mode.Rotation())) {
+ default:
+ break;
+ case 1:
+ std::swap(output.a, output.rgb.b);
+ break;
+ case 2:
+ std::swap(output.a, output.rgb.g);
+ break;
+ case 3:
+ std::swap(output.a, output.rgb.r);
+ break;
+ }
+
+ auto out = reinterpret_cast<Color *>(dst + sizeof(Color) * x + dstPitch * y);
+ *out = output;
+ }
+ }
+ }
+
+ int subsetIndex(const Mode &mode, int partitionIdx, int texelIndex) const {
+ switch (mode.NS) {
+ default:
+ return 0;
+ case 2:
+ return PartitionTable2[partitionIdx][texelIndex];
+ case 3:
+ return PartitionTable3[partitionIdx][texelIndex];
+ }
+ }
+
+ int anchorIndex(const Mode &mode, int partitionIdx, int subsetIdx) const {
+ // ARB_texture_compression_bptc states:
+ // "In partition zero, the anchor index is always index zero.
+ // In other partitions, the anchor index is specified by tables
+ // Table.A2 and Table.A3.""
+ // Note: This is really confusing - I believe they meant subset instead
+ // of partition here.
+ switch (subsetIdx) {
+ default:
+ return 0;
+ case 1:
+ return mode.NS == 2 ? AnchorTable2[partitionIdx] : AnchorTable3a[partitionIdx];
+ case 2:
+ return AnchorTable3b[partitionIdx];
+ }
+ }
+
+ IndexInfo colorIndex(const Mode &mode, bool isAnchor,
+ int &indexBitOffset) const {
+ // ARB_texture_compression_bptc states:
+ // "The index value for interpolating color comes from the secondary
+ // index for the texel if the format has an index selection bit and its
+ // value is one and from the primary index otherwise.""
+ auto idx = Get(mode.IndexSelection());
+ assert(idx <= 1);
+ bool secondary = idx == 1;
+ auto numBits = secondary ? mode.IB2 : mode.IB;
+ auto numReadBits = numBits - (isAnchor ? 1 : 0);
+ auto index =
+ Get(secondary ? mode.SecondaryIndex(indexBitOffset, numReadBits)
+ : mode.PrimaryIndex(indexBitOffset, numReadBits));
+ indexBitOffset += numReadBits;
+ return {index, numBits};
+ }
+
+ IndexInfo alphaIndex(const Mode &mode, bool isAnchor,
+ int &indexBitOffset) const {
+ // ARB_texture_compression_bptc states:
+ // "The alpha index comes from the secondary index if the block has a
+ // secondary index and the block either doesn't have an index selection
+ // bit or that bit is zero and the primary index otherwise."
+ auto idx = Get(mode.IndexSelection());
+ assert(idx <= 1);
+ bool secondary = (mode.IB2 != 0) && (idx == 0);
+ auto numBits = secondary ? mode.IB2 : mode.IB;
+ auto numReadBits = numBits - (isAnchor ? 1 : 0);
+ auto index =
+ Get(secondary ? mode.SecondaryIndex(indexBitOffset, numReadBits)
+ : mode.PrimaryIndex(indexBitOffset, numReadBits));
+ indexBitOffset += numReadBits;
+ return {index, numBits};
+ }
+
+ // Assumes little-endian
+ uint64_t low;
+ uint64_t high;
+ };
+
+ } // namespace BC7
+} // anonymous namespace
+
+namespace bcn {
+ constexpr size_t R8Bpp{1}; //!< The amount of bytes per pixel in R8
+ constexpr size_t R8g8Bpp{2}; //!< The amount of bytes per pixel in R8G8
+ constexpr size_t R8g8b8a8Bpp{4}; //!< The amount of bytes per pixel in R8G8B8A8
+ constexpr size_t R16g16b16a16Bpp{8}; //!< The amount of bytes per pixel in R16G16B16
+
+ void DecodeBc1(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height) {
+ const auto *color{reinterpret_cast<const BC_color *>(src)};
+ size_t pitch{R8g8b8a8Bpp * width};
+ color->decode(dst, x, y, width, height, pitch, R8g8b8a8Bpp, true, false);
+ }
+
+ void DecodeBc2(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height) {
+ const auto *alpha{reinterpret_cast<const BC_alpha *>(src)};
+ const auto *color{reinterpret_cast<const BC_color *>(src + 8)};
+ size_t pitch{R8g8b8a8Bpp * width};
+ color->decode(dst, x, y, width, height, pitch, R8g8b8a8Bpp, false, true);
+ alpha->decode(dst, x, y, width, height, pitch, R8g8b8a8Bpp);
+ }
+
+ void DecodeBc3(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height) {
+ const auto *alpha{reinterpret_cast<const BC_channel *>(src)};
+ const auto *color{reinterpret_cast<const BC_color *>(src + 8)};
+ size_t pitch{R8g8b8a8Bpp * width};
+ color->decode(dst, x, y, width, height, pitch, R8g8b8a8Bpp, false, true);
+ alpha->decode(dst, x, y, width, height, pitch, R8g8b8a8Bpp, 3, false);
+ }
+
+ void DecodeBc4(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned) {
+ const auto *red{reinterpret_cast<const BC_channel *>(src)};
+ size_t pitch{R8Bpp * width};
+ red->decode(dst, x, y, width, height, pitch, R8Bpp, 0, isSigned);
+ }
+
+ void DecodeBc5(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned) {
+ const auto *red{reinterpret_cast<const BC_channel *>(src)};
+ const auto *green{reinterpret_cast<const BC_channel *>(src + 8)};
+ size_t pitch{R8g8Bpp * width};
+ red->decode(dst, x, y, width, height, pitch, R8g8Bpp, 0, isSigned);
+ green->decode(dst, x, y, width, height, pitch, R8g8Bpp, 1, isSigned);
+ }
+
+ void DecodeBc6(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned) {
+ const auto *block{reinterpret_cast<const BC6H::Block *>(src)};
+ size_t pitch{R16g16b16a16Bpp * width};
+ block->decode(dst, x, y, width, height, pitch, R16g16b16a16Bpp, isSigned);
+ }
+
+ void DecodeBc7(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height) {
+ const auto *block{reinterpret_cast<const BC7::Block *>(src)};
+ size_t pitch{R8g8b8a8Bpp * width};
+ block->decode(dst, x, y, width, height, pitch);
+ }
+}
diff --git a/externals/bc_decoder/bc_decoder.h b/externals/bc_decoder/bc_decoder.h
new file mode 100644
index 000000000..4f0ead7d3
--- /dev/null
+++ b/externals/bc_decoder/bc_decoder.h
@@ -0,0 +1,43 @@
+// SPDX-License-Identifier: MPL-2.0
+// Copyright © 2022 Skyline Team and Contributors (https://github.com/skyline-emu/)
+
+#pragma once
+
+#include <cstdint>
+
+namespace bcn {
+ /**
+ * @brief Decodes a BC1 encoded image to R8G8B8A8
+ */
+ void DecodeBc1(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+
+ /**
+ * @brief Decodes a BC2 encoded image to R8G8B8A8
+ */
+ void DecodeBc2(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+
+ /**
+ * @brief Decodes a BC3 encoded image to R8G8B8A8
+ */
+ void DecodeBc3(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+
+ /**
+ * @brief Decodes a BC4 encoded image to R8
+ */
+ void DecodeBc4(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned);
+
+ /**
+ * @brief Decodes a BC5 encoded image to R8G8
+ */
+ void DecodeBc5(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned);
+
+ /**
+ * @brief Decodes a BC6 encoded image to R16G16B16A16
+ */
+ void DecodeBc6(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height, bool isSigned);
+
+ /**
+ * @brief Decodes a BC7 encoded image to R8G8B8A8
+ */
+ void DecodeBc7(const uint8_t *src, uint8_t *dst, size_t x, size_t y, size_t width, size_t height);
+}
diff --git a/externals/nx_tzdb/CMakeLists.txt b/externals/nx_tzdb/CMakeLists.txt
index d5a1c6317..593786250 100644
--- a/externals/nx_tzdb/CMakeLists.txt
+++ b/externals/nx_tzdb/CMakeLists.txt
@@ -7,7 +7,7 @@ add_library(nx_tzdb INTERFACE)
find_program(GIT git)
find_program(GNU_MAKE make)
-find_program(GNU_DATE date)
+find_program(DATE_PROG date)
set(CAN_BUILD_NX_TZDB true)
@@ -17,7 +17,7 @@ endif()
if (NOT GNU_MAKE)
set(CAN_BUILD_NX_TZDB false)
endif()
-if (NOT GNU_DATE)
+if (NOT DATE_PROG)
set(CAN_BUILD_NX_TZDB false)
endif()
if (CMAKE_SYSTEM_NAME STREQUAL "Windows" OR ANDROID)
diff --git a/externals/nx_tzdb/tzdb_to_nx b/externals/nx_tzdb/tzdb_to_nx
-Subproject 34df65eff295c2bd9ee9e6a077d662486d5cabb
+Subproject 212afa2394a74226dcf1b7996a570aae17debb6
diff --git a/externals/vma/VulkanMemoryAllocator b/externals/vma/VulkanMemoryAllocator
new file mode 160000
+Subproject 0aa3989b8f382f185fdf646cc83a1d16fa31d6a
diff --git a/externals/vma/vma.cpp b/externals/vma/vma.cpp
new file mode 100644
index 000000000..1fe2cf52b
--- /dev/null
+++ b/externals/vma/vma.cpp
@@ -0,0 +1,8 @@
+// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#define VMA_IMPLEMENTATION
+#define VMA_STATIC_VULKAN_FUNCTIONS 0
+#define VMA_DYNAMIC_VULKAN_FUNCTIONS 1
+
+#include <vk_mem_alloc.h> \ No newline at end of file
diff --git a/src/android/app/build.gradle.kts b/src/android/app/build.gradle.kts
index bab4f4d0f..9a47e2bd8 100644
--- a/src/android/app/build.gradle.kts
+++ b/src/android/app/build.gradle.kts
@@ -26,7 +26,7 @@ val autoVersion = (((System.currentTimeMillis() / 1000) - 1451606400) / 10).toIn
android {
namespace = "org.yuzu.yuzu_emu"
- compileSdkVersion = "android-33"
+ compileSdkVersion = "android-34"
ndkVersion = "25.2.9519653"
buildFeatures {
@@ -51,7 +51,7 @@ android {
// TODO If this is ever modified, change application_id in strings.xml
applicationId = "org.yuzu.yuzu_emu"
minSdk = 30
- targetSdk = 33
+ targetSdk = 34
versionName = getGitVersion()
// If you want to use autoVersion for the versionCode, create a property in local.properties
diff --git a/src/android/app/src/main/AndroidManifest.xml b/src/android/app/src/main/AndroidManifest.xml
index e31ad69e2..51d949d65 100644
--- a/src/android/app/src/main/AndroidManifest.xml
+++ b/src/android/app/src/main/AndroidManifest.xml
@@ -13,6 +13,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
+ <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
@@ -69,7 +70,9 @@ SPDX-License-Identifier: GPL-3.0-or-later
android:resource="@xml/nfc_tech_filter" />
</activity>
- <service android:name="org.yuzu.yuzu_emu.utils.ForegroundService"/>
+ <service android:name="org.yuzu.yuzu_emu.utils.ForegroundService" android:foregroundServiceType="specialUse">
+ <property android:name="android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE" android:value="Keep emulation running in background"/>
+ </service>
<provider
android:name=".features.DocumentProvider"
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
index f860cdd4b..9c32e044c 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/NativeLibrary.kt
@@ -286,7 +286,7 @@ object NativeLibrary {
/**
* Unpauses emulation from a paused state.
*/
- external fun unPauseEmulation()
+ external fun unpauseEmulation()
/**
* Pauses emulation.
@@ -314,6 +314,21 @@ object NativeLibrary {
external fun isPaused(): Boolean
/**
+ * Mutes emulation sound
+ */
+ external fun muteAudio(): Boolean
+
+ /**
+ * Unmutes emulation sound
+ */
+ external fun unmuteAudio(): Boolean
+
+ /**
+ * Returns true if emulation audio is muted.
+ */
+ external fun isMuted(): Boolean
+
+ /**
* Returns the performance stats for the current game
*/
external fun getPerfStats(): DoubleArray
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
index f0a6753a9..ae665ed2e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/activities/EmulationActivity.kt
@@ -27,13 +27,13 @@ import android.view.MotionEvent
import android.view.Surface
import android.view.View
import android.view.inputmethod.InputMethodManager
+import android.widget.Toast
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import androidx.navigation.fragment.NavHostFragment
-import kotlin.math.roundToInt
import org.yuzu.yuzu_emu.NativeLibrary
import org.yuzu.yuzu_emu.R
import org.yuzu.yuzu_emu.databinding.ActivityEmulationBinding
@@ -44,8 +44,10 @@ import org.yuzu.yuzu_emu.model.Game
import org.yuzu.yuzu_emu.utils.ControllerMappingHelper
import org.yuzu.yuzu_emu.utils.ForegroundService
import org.yuzu.yuzu_emu.utils.InputHandler
+import org.yuzu.yuzu_emu.utils.MemoryUtil
import org.yuzu.yuzu_emu.utils.NfcReader
import org.yuzu.yuzu_emu.utils.ThemeHelper
+import kotlin.math.roundToInt
class EmulationActivity : AppCompatActivity(), SensorEventListener {
private lateinit var binding: ActivityEmulationBinding
@@ -63,6 +65,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
private val actionPause = "ACTION_EMULATOR_PAUSE"
private val actionPlay = "ACTION_EMULATOR_PLAY"
+ private val actionMute = "ACTION_EMULATOR_MUTE"
+ private val actionUnmute = "ACTION_EMULATOR_UNMUTE"
private val settingsViewModel: SettingsViewModel by viewModels()
@@ -102,6 +106,19 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
inputHandler = InputHandler()
inputHandler.initialize()
+ val memoryUtil = MemoryUtil(this)
+ if (memoryUtil.isLessThan(8, MemoryUtil.Gb)) {
+ Toast.makeText(
+ this,
+ getString(
+ R.string.device_memory_inadequate,
+ memoryUtil.getDeviceRAM(),
+ "8 ${getString(R.string.memory_gigabyte)}"
+ ),
+ Toast.LENGTH_LONG
+ ).show()
+ }
+
// Start a foreground service to prevent the app from getting killed in the background
val startIntent = Intent(this, ForegroundService::class.java)
startForegroundService(startIntent)
@@ -305,6 +322,41 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
pictureInPictureActions.add(pauseRemoteAction)
}
+ if (NativeLibrary.isMuted()) {
+ val unmuteIcon = Icon.createWithResource(
+ this@EmulationActivity,
+ R.drawable.ic_pip_unmute
+ )
+ val unmutePendingIntent = PendingIntent.getBroadcast(
+ this@EmulationActivity,
+ R.drawable.ic_pip_unmute,
+ Intent(actionUnmute),
+ pendingFlags
+ )
+ val unmuteRemoteAction = RemoteAction(
+ unmuteIcon,
+ getString(R.string.unmute),
+ getString(R.string.unmute),
+ unmutePendingIntent
+ )
+ pictureInPictureActions.add(unmuteRemoteAction)
+ } else {
+ val muteIcon = Icon.createWithResource(this@EmulationActivity, R.drawable.ic_pip_mute)
+ val mutePendingIntent = PendingIntent.getBroadcast(
+ this@EmulationActivity,
+ R.drawable.ic_pip_mute,
+ Intent(actionMute),
+ pendingFlags
+ )
+ val muteRemoteAction = RemoteAction(
+ muteIcon,
+ getString(R.string.mute),
+ getString(R.string.mute),
+ mutePendingIntent
+ )
+ pictureInPictureActions.add(muteRemoteAction)
+ }
+
return this.apply { setActions(pictureInPictureActions) }
}
@@ -322,10 +374,15 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
private var pictureInPictureReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent) {
if (intent.action == actionPlay) {
- if (NativeLibrary.isPaused()) NativeLibrary.unPauseEmulation()
+ if (NativeLibrary.isPaused()) NativeLibrary.unpauseEmulation()
} else if (intent.action == actionPause) {
if (!NativeLibrary.isPaused()) NativeLibrary.pauseEmulation()
}
+ if (intent.action == actionUnmute) {
+ if (NativeLibrary.isMuted()) NativeLibrary.unmuteAudio()
+ } else if (intent.action == actionMute) {
+ if (!NativeLibrary.isMuted()) NativeLibrary.muteAudio()
+ }
buildPictureInPictureParams()
}
}
@@ -339,6 +396,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
IntentFilter().apply {
addAction(actionPause)
addAction(actionPlay)
+ addAction(actionMute)
+ addAction(actionUnmute)
}.also {
registerReceiver(pictureInPictureReceiver, it)
}
@@ -347,6 +406,8 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
unregisterReceiver(pictureInPictureReceiver)
} catch (ignored: Exception) {
}
+ // Always resume audio, since there is no UI button
+ if (NativeLibrary.isMuted()) NativeLibrary.unmuteAudio()
}
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
index 4643418c1..09976db62 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/EmulationFragment.kt
@@ -714,7 +714,7 @@ class EmulationFragment : Fragment(), SurfaceHolder.Callback {
State.PAUSED -> {
Log.debug("[EmulationFragment] Resuming emulation.")
NativeLibrary.surfaceChanged(surface)
- NativeLibrary.unPauseEmulation()
+ NativeLibrary.unpauseEmulation()
}
else -> Log.debug("[EmulationFragment] Bug, run called while already running.")
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
index 6f8adbba5..5a36ffad4 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/HomeSettingsFragment.kt
@@ -68,79 +68,109 @@ class HomeSettingsFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
mainActivity = requireActivity() as MainActivity
- val optionsList: MutableList<HomeSetting> = mutableListOf(
- HomeSetting(
- R.string.advanced_settings,
- R.string.settings_description,
- R.drawable.ic_settings
- ) { SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") },
- HomeSetting(
- R.string.open_user_folder,
- R.string.open_user_folder_description,
- R.drawable.ic_folder_open
- ) { openFileManager() },
- HomeSetting(
- R.string.preferences_theme,
- R.string.theme_and_color_description,
- R.drawable.ic_palette
- ) { SettingsActivity.launch(requireContext(), Settings.SECTION_THEME, "") },
- HomeSetting(
- R.string.install_gpu_driver,
- R.string.install_gpu_driver_description,
- R.drawable.ic_exit
- ) { driverInstaller() },
- HomeSetting(
- R.string.install_amiibo_keys,
- R.string.install_amiibo_keys_description,
- R.drawable.ic_nfc
- ) { mainActivity.getAmiiboKey.launch(arrayOf("*/*")) },
- HomeSetting(
- R.string.install_game_content,
- R.string.install_game_content_description,
- R.drawable.ic_system_update_alt
- ) { mainActivity.installGameUpdate.launch(arrayOf("*/*")) },
- HomeSetting(
- R.string.select_games_folder,
- R.string.select_games_folder_description,
- R.drawable.ic_add
- ) {
- mainActivity.getGamesDirectory.launch(Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data)
- },
- HomeSetting(
- R.string.manage_save_data,
- R.string.import_export_saves_description,
- R.drawable.ic_save
- ) {
- ImportExportSavesFragment().show(
- parentFragmentManager,
- ImportExportSavesFragment.TAG
+ val optionsList: MutableList<HomeSetting> = mutableListOf<HomeSetting>().apply {
+ add(
+ HomeSetting(
+ R.string.advanced_settings,
+ R.string.settings_description,
+ R.drawable.ic_settings
+ ) { SettingsActivity.launch(requireContext(), SettingsFile.FILE_NAME_CONFIG, "") }
+ )
+ add(
+ HomeSetting(
+ R.string.open_user_folder,
+ R.string.open_user_folder_description,
+ R.drawable.ic_folder_open
+ ) { openFileManager() }
+ )
+ add(
+ HomeSetting(
+ R.string.preferences_theme,
+ R.string.theme_and_color_description,
+ R.drawable.ic_palette
+ ) { SettingsActivity.launch(requireContext(), Settings.SECTION_THEME, "") }
+ )
+
+ if (GpuDriverHelper.supportsCustomDriverLoading()) {
+ add(
+ HomeSetting(
+ R.string.install_gpu_driver,
+ R.string.install_gpu_driver_description,
+ R.drawable.ic_exit
+ ) { driverInstaller() }
)
- },
- HomeSetting(
- R.string.install_prod_keys,
- R.string.install_prod_keys_description,
- R.drawable.ic_unlock
- ) { mainActivity.getProdKey.launch(arrayOf("*/*")) },
- HomeSetting(
- R.string.install_firmware,
- R.string.install_firmware_description,
- R.drawable.ic_firmware
- ) { mainActivity.getFirmware.launch(arrayOf("application/zip")) },
- HomeSetting(
- R.string.share_log,
- R.string.share_log_description,
- R.drawable.ic_log
- ) { shareLog() },
- HomeSetting(
- R.string.about,
- R.string.about_description,
- R.drawable.ic_info_outline
- ) {
- exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
- parentFragmentManager.primaryNavigationFragment?.findNavController()
- ?.navigate(R.id.action_homeSettingsFragment_to_aboutFragment)
}
- )
+
+ add(
+ HomeSetting(
+ R.string.install_amiibo_keys,
+ R.string.install_amiibo_keys_description,
+ R.drawable.ic_nfc
+ ) { mainActivity.getAmiiboKey.launch(arrayOf("*/*")) }
+ )
+ add(
+ HomeSetting(
+ R.string.install_game_content,
+ R.string.install_game_content_description,
+ R.drawable.ic_system_update_alt
+ ) { mainActivity.installGameUpdate.launch(arrayOf("*/*")) }
+ )
+ add(
+ HomeSetting(
+ R.string.select_games_folder,
+ R.string.select_games_folder_description,
+ R.drawable.ic_add
+ ) {
+ mainActivity.getGamesDirectory.launch(
+ Intent(Intent.ACTION_OPEN_DOCUMENT_TREE).data
+ )
+ }
+ )
+ add(
+ HomeSetting(
+ R.string.manage_save_data,
+ R.string.import_export_saves_description,
+ R.drawable.ic_save
+ ) {
+ ImportExportSavesFragment().show(
+ parentFragmentManager,
+ ImportExportSavesFragment.TAG
+ )
+ }
+ )
+ add(
+ HomeSetting(
+ R.string.install_prod_keys,
+ R.string.install_prod_keys_description,
+ R.drawable.ic_unlock
+ ) { mainActivity.getProdKey.launch(arrayOf("*/*")) }
+ )
+ add(
+ HomeSetting(
+ R.string.install_firmware,
+ R.string.install_firmware_description,
+ R.drawable.ic_firmware
+ ) { mainActivity.getFirmware.launch(arrayOf("application/zip")) }
+ )
+ add(
+ HomeSetting(
+ R.string.share_log,
+ R.string.share_log_description,
+ R.drawable.ic_log
+ ) { shareLog() }
+ )
+ add(
+ HomeSetting(
+ R.string.about,
+ R.string.about_description,
+ R.drawable.ic_info_outline
+ ) {
+ exitTransition = MaterialSharedAxis(MaterialSharedAxis.X, true)
+ parentFragmentManager.primaryNavigationFragment?.findNavController()
+ ?.navigate(R.id.action_homeSettingsFragment_to_aboutFragment)
+ }
+ )
+ }
if (!BuildConfig.PREMIUM) {
optionsList.add(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LongMessageDialogFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LongMessageDialogFragment.kt
new file mode 100644
index 000000000..b29b627e9
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/LongMessageDialogFragment.kt
@@ -0,0 +1,62 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.yuzu.yuzu_emu.fragments
+
+import android.app.Dialog
+import android.content.Intent
+import android.net.Uri
+import android.os.Bundle
+import androidx.fragment.app.DialogFragment
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import org.yuzu.yuzu_emu.R
+
+class LongMessageDialogFragment : DialogFragment() {
+ override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+ val titleId = requireArguments().getInt(TITLE)
+ val description = requireArguments().getString(DESCRIPTION)
+ val helpLinkId = requireArguments().getInt(HELP_LINK)
+
+ val dialog = MaterialAlertDialogBuilder(requireContext())
+ .setPositiveButton(R.string.close, null)
+ .setTitle(titleId)
+ .setMessage(description)
+
+ if (helpLinkId != 0) {
+ dialog.setNeutralButton(R.string.learn_more) { _, _ ->
+ openLink(getString(helpLinkId))
+ }
+ }
+
+ return dialog.show()
+ }
+
+ private fun openLink(link: String) {
+ val intent = Intent(Intent.ACTION_VIEW, Uri.parse(link))
+ startActivity(intent)
+ }
+
+ companion object {
+ const val TAG = "LongMessageDialogFragment"
+
+ private const val TITLE = "Title"
+ private const val DESCRIPTION = "Description"
+ private const val HELP_LINK = "Link"
+
+ fun newInstance(
+ titleId: Int,
+ description: String,
+ helpLinkId: Int = 0
+ ): LongMessageDialogFragment {
+ val dialog = LongMessageDialogFragment()
+ val bundle = Bundle()
+ bundle.apply {
+ putInt(TITLE, titleId)
+ putString(DESCRIPTION, description)
+ putInt(HELP_LINK, helpLinkId)
+ }
+ dialog.arguments = bundle
+ return dialog
+ }
+ }
+}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt
index dd6c895fd..f54dccc69 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/fragments/SearchFragment.kt
@@ -29,7 +29,6 @@ import org.yuzu.yuzu_emu.layout.AutofitGridLayoutManager
import org.yuzu.yuzu_emu.model.Game
import org.yuzu.yuzu_emu.model.GamesViewModel
import org.yuzu.yuzu_emu.model.HomeViewModel
-import org.yuzu.yuzu_emu.utils.FileUtil
class SearchFragment : Fragment() {
private var _binding: FragmentSearchBinding? = null
@@ -128,10 +127,7 @@ class SearchFragment : Fragment() {
R.id.chip_homebrew -> baseList.filter { it.isHomebrew }
- R.id.chip_retail -> baseList.filter {
- FileUtil.hasExtension(it.path, "xci") ||
- FileUtil.hasExtension(it.path, "nsp")
- }
+ R.id.chip_retail -> baseList.filter { !it.isHomebrew }
else -> baseList
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
index 6a048e39f..6527c64ab 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/model/Game.kt
@@ -43,7 +43,7 @@ class Game(
companion object {
val extensions: Set<String> = HashSet(
- listOf(".xci", ".nsp", ".nca", ".nro")
+ listOf("xci", "nsp", "nca", "nro")
)
}
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
index cc1d87f1b..f7d7aed1e 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/ui/main/MainActivity.kt
@@ -4,6 +4,7 @@
package org.yuzu.yuzu_emu.ui.main
import android.content.Intent
+import android.net.Uri
import android.os.Bundle
import android.view.View
import android.view.ViewGroup.MarginLayoutParams
@@ -42,6 +43,7 @@ import org.yuzu.yuzu_emu.features.settings.model.SettingsViewModel
import org.yuzu.yuzu_emu.features.settings.ui.SettingsActivity
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
import org.yuzu.yuzu_emu.fragments.IndeterminateProgressDialogFragment
+import org.yuzu.yuzu_emu.fragments.LongMessageDialogFragment
import org.yuzu.yuzu_emu.fragments.MessageDialogFragment
import org.yuzu.yuzu_emu.model.GamesViewModel
import org.yuzu.yuzu_emu.model.HomeViewModel
@@ -294,7 +296,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
- if (!FileUtil.hasExtension(result, "keys")) {
+ if (FileUtil.getExtension(result) != "keys") {
MessageDialogFragment.newInstance(
R.string.reading_keys_failure,
R.string.install_prod_keys_failure_extension_description
@@ -391,7 +393,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
return@registerForActivityResult
}
- if (!FileUtil.hasExtension(result, "bin")) {
+ if (FileUtil.getExtension(result) != "bin") {
MessageDialogFragment.newInstance(
R.string.reading_keys_failure,
R.string.install_amiibo_keys_failure_extension_description
@@ -481,62 +483,110 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
}
}
- val installGameUpdate =
- registerForActivityResult(ActivityResultContracts.OpenDocument()) {
- if (it == null) {
- return@registerForActivityResult
- }
-
+ val installGameUpdate = registerForActivityResult(
+ ActivityResultContracts.OpenMultipleDocuments()
+ ) { documents: List<Uri> ->
+ if (documents.isNotEmpty()) {
IndeterminateProgressDialogFragment.newInstance(
this@MainActivity,
R.string.install_game_content
) {
- val result = NativeLibrary.installFileToNand(it.toString())
+ var installSuccess = 0
+ var installOverwrite = 0
+ var errorBaseGame = 0
+ var errorExtension = 0
+ var errorOther = 0
+ var errorTotal = 0
lifecycleScope.launch {
- withContext(Dispatchers.Main) {
- when (result) {
+ documents.forEach {
+ when (NativeLibrary.installFileToNand(it.toString())) {
NativeLibrary.InstallFileToNandResult.Success -> {
- Toast.makeText(
- applicationContext,
- R.string.install_game_content_success,
- Toast.LENGTH_SHORT
- ).show()
+ installSuccess += 1
}
NativeLibrary.InstallFileToNandResult.SuccessFileOverwritten -> {
- Toast.makeText(
- applicationContext,
- R.string.install_game_content_success_overwrite,
- Toast.LENGTH_SHORT
- ).show()
+ installOverwrite += 1
}
NativeLibrary.InstallFileToNandResult.ErrorBaseGame -> {
- MessageDialogFragment.newInstance(
- R.string.install_game_content_failure,
- R.string.install_game_content_failure_base
- ).show(supportFragmentManager, MessageDialogFragment.TAG)
+ errorBaseGame += 1
}
NativeLibrary.InstallFileToNandResult.ErrorFilenameExtension -> {
- MessageDialogFragment.newInstance(
- R.string.install_game_content_failure,
- R.string.install_game_content_failure_file_extension,
- R.string.install_game_content_help_link
- ).show(supportFragmentManager, MessageDialogFragment.TAG)
+ errorExtension += 1
}
else -> {
- MessageDialogFragment.newInstance(
- R.string.install_game_content_failure,
- R.string.install_game_content_failure_description,
- R.string.install_game_content_help_link
- ).show(supportFragmentManager, MessageDialogFragment.TAG)
+ errorOther += 1
}
}
}
+ withContext(Dispatchers.Main) {
+ val separator = System.getProperty("line.separator") ?: "\n"
+ val installResult = StringBuilder()
+ if (installSuccess > 0) {
+ installResult.append(
+ getString(
+ R.string.install_game_content_success_install,
+ installSuccess
+ )
+ )
+ installResult.append(separator)
+ }
+ if (installOverwrite > 0) {
+ installResult.append(
+ getString(
+ R.string.install_game_content_success_overwrite,
+ installOverwrite
+ )
+ )
+ installResult.append(separator)
+ }
+ errorTotal = errorBaseGame + errorExtension + errorOther
+ if (errorTotal > 0) {
+ installResult.append(separator)
+ installResult.append(
+ getString(
+ R.string.install_game_content_failed_count,
+ errorTotal
+ )
+ )
+ installResult.append(separator)
+ if (errorBaseGame > 0) {
+ installResult.append(separator)
+ installResult.append(
+ getString(R.string.install_game_content_failure_base)
+ )
+ installResult.append(separator)
+ }
+ if (errorExtension > 0) {
+ installResult.append(separator)
+ installResult.append(
+ getString(R.string.install_game_content_failure_file_extension)
+ )
+ installResult.append(separator)
+ }
+ if (errorOther > 0) {
+ installResult.append(
+ getString(R.string.install_game_content_failure_description)
+ )
+ installResult.append(separator)
+ }
+ LongMessageDialogFragment.newInstance(
+ R.string.install_game_content_failure,
+ installResult.toString().trim(),
+ R.string.install_game_content_help_link
+ ).show(supportFragmentManager, LongMessageDialogFragment.TAG)
+ } else {
+ LongMessageDialogFragment.newInstance(
+ R.string.install_game_content_success,
+ installResult.toString().trim()
+ ).show(supportFragmentManager, LongMessageDialogFragment.TAG)
+ }
+ }
}
- return@newInstance result
+ return@newInstance installSuccess + installOverwrite + errorTotal
}.show(supportFragmentManager, IndeterminateProgressDialogFragment.TAG)
}
+ }
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt
index 9f3bbe56f..142af5f26 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/FileUtil.kt
@@ -7,7 +7,6 @@ import android.content.Context
import android.database.Cursor
import android.net.Uri
import android.provider.DocumentsContract
-import android.provider.OpenableColumns
import androidx.documentfile.provider.DocumentFile
import java.io.BufferedInputStream
import java.io.File
@@ -185,19 +184,18 @@ object FileUtil {
/**
* Get file display name from given path
- * @param path content uri path
+ * @param uri content uri
* @return String display name
*/
- fun getFilename(context: Context, path: String): String {
- val resolver = context.contentResolver
+ fun getFilename(uri: Uri): String {
+ val resolver = YuzuApplication.appContext.contentResolver
val columns = arrayOf(
DocumentsContract.Document.COLUMN_DISPLAY_NAME
)
var filename = ""
var c: Cursor? = null
try {
- val mUri = Uri.parse(path)
- c = resolver.query(mUri, columns, null, null, null)
+ c = resolver.query(uri, columns, null, null, null)
c!!.moveToNext()
filename = c.getString(0)
} catch (e: Exception) {
@@ -326,25 +324,9 @@ object FileUtil {
}
}
- fun hasExtension(path: String, extension: String): Boolean =
- path.substring(path.lastIndexOf(".") + 1).contains(extension)
-
- fun hasExtension(uri: Uri, extension: String): Boolean {
- val fileName: String?
- val cursor = YuzuApplication.appContext.contentResolver.query(uri, null, null, null, null)
- val nameIndex = cursor?.getColumnIndex(OpenableColumns.DISPLAY_NAME)
- cursor?.moveToFirst()
-
- if (nameIndex == null) {
- return false
- }
-
- fileName = cursor.getString(nameIndex)
- cursor.close()
-
- if (fileName == null) {
- return false
- }
- return fileName.substring(fileName.lastIndexOf(".") + 1).contains(extension)
+ fun getExtension(uri: Uri): String {
+ val fileName = getFilename(uri)
+ return fileName.substring(fileName.lastIndexOf(".") + 1)
+ .lowercase()
}
}
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt
index ee9f3e570..f8e7eeca7 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GameHelper.kt
@@ -6,7 +6,6 @@ package org.yuzu.yuzu_emu.utils
import android.content.SharedPreferences
import android.net.Uri
import androidx.preference.PreferenceManager
-import java.util.*
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import org.yuzu.yuzu_emu.NativeLibrary
@@ -33,15 +32,9 @@ object GameHelper {
val children = FileUtil.listFiles(context, gamesUri)
for (file in children) {
if (!file.isDirectory) {
- val filename = file.uri.toString()
- val extensionStart = filename.lastIndexOf('.')
- if (extensionStart > 0) {
- val fileExtension = filename.substring(extensionStart)
-
- // Check that the file has an extension we care about before trying to read out of it.
- if (Game.extensions.contains(fileExtension.lowercase(Locale.getDefault()))) {
- games.add(getGame(filename))
- }
+ // Check that the file has an extension we care about before trying to read out of it.
+ if (Game.extensions.contains(FileUtil.getExtension(file.uri))) {
+ games.add(getGame(file.uri))
}
}
}
@@ -59,21 +52,19 @@ object GameHelper {
return games.toList()
}
- private fun getGame(filePath: String): Game {
+ private fun getGame(uri: Uri): Game {
+ val filePath = uri.toString()
var name = NativeLibrary.getTitle(filePath)
// If the game's title field is empty, use the filename.
if (name.isEmpty()) {
- name = filePath.substring(filePath.lastIndexOf("/") + 1)
+ name = FileUtil.getFilename(uri)
}
var gameId = NativeLibrary.getGameId(filePath)
// If the game's ID field is empty, use the filename without extension.
if (gameId.isEmpty()) {
- gameId = filePath.substring(
- filePath.lastIndexOf("/") + 1,
- filePath.lastIndexOf(".")
- )
+ gameId = name.substring(0, name.lastIndexOf("."))
}
val newGame = Game(
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt
index dad159481..1d4695a2a 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/GpuDriverHelper.kt
@@ -113,6 +113,8 @@ object GpuDriverHelper {
initializeDriverParameters(context)
}
+ external fun supportsCustomDriverLoading(): Boolean
+
// Parse the custom driver metadata to retrieve the name.
val customDriverName: String?
get() {
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
new file mode 100644
index 000000000..18e5fa0b0
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/MemoryUtil.kt
@@ -0,0 +1,59 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.yuzu.yuzu_emu.utils
+
+import android.app.ActivityManager
+import android.content.Context
+import org.yuzu.yuzu_emu.R
+import java.util.Locale
+
+class MemoryUtil(val context: Context) {
+
+ private val Long.floatForm: String
+ get() = String.format(Locale.ROOT, "%.2f", this.toDouble())
+
+ private fun bytesToSizeUnit(size: Long): String {
+ return when {
+ size < Kb -> "${size.floatForm} ${context.getString(R.string.memory_byte)}"
+ size < Mb -> "${(size / Kb).floatForm} ${context.getString(R.string.memory_kilobyte)}"
+ size < Gb -> "${(size / Mb).floatForm} ${context.getString(R.string.memory_megabyte)}"
+ size < Tb -> "${(size / Gb).floatForm} ${context.getString(R.string.memory_gigabyte)}"
+ size < Pb -> "${(size / Tb).floatForm} ${context.getString(R.string.memory_terabyte)}"
+ size < Eb -> "${(size / Pb).floatForm} ${context.getString(R.string.memory_petabyte)}"
+ else -> "${(size / Eb).floatForm} ${context.getString(R.string.memory_exabyte)}"
+ }
+ }
+
+ private val totalMemory =
+ with(context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager) {
+ val memInfo = ActivityManager.MemoryInfo()
+ getMemoryInfo(memInfo)
+ memInfo.totalMem
+ }
+
+ fun isLessThan(minimum: Int, size: Long): Boolean {
+ return when (size) {
+ Kb -> totalMemory < Mb && totalMemory < minimum
+ Mb -> totalMemory < Gb && (totalMemory / Mb) < minimum
+ Gb -> totalMemory < Tb && (totalMemory / Gb) < minimum
+ Tb -> totalMemory < Pb && (totalMemory / Tb) < minimum
+ Pb -> totalMemory < Eb && (totalMemory / Pb) < minimum
+ Eb -> totalMemory / Eb < minimum
+ else -> totalMemory < Kb && totalMemory < minimum
+ }
+ }
+
+ fun getDeviceRAM(): String {
+ return bytesToSizeUnit(totalMemory)
+ }
+
+ companion object {
+ const val Kb: Long = 1024
+ const val Mb = Kb * 1024
+ const val Gb = Mb * 1024
+ const val Tb = Gb * 1024
+ const val Pb = Tb * 1024
+ const val Eb = Pb * 1024
+ }
+}
diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt
index 041781577..e2ed08e9f 100644
--- a/src/android/app/src/main/jni/CMakeLists.txt
+++ b/src/android/app/src/main/jni/CMakeLists.txt
@@ -14,7 +14,6 @@ add_library(yuzu-android SHARED
id_cache.cpp
id_cache.h
native.cpp
- native.h
)
set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR})
diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp
index f9617202b..8bc6a4a04 100644
--- a/src/android/app/src/main/jni/native.cpp
+++ b/src/android/app/src/main/jni/native.cpp
@@ -14,6 +14,7 @@
#include <android/api-level.h>
#include <android/native_window_jni.h>
#include <core/loader/nro.h>
+#include <jni.h>
#include "common/detached_tasks.h"
#include "common/dynamic_library.h"
@@ -59,6 +60,9 @@
#include "video_core/rasterizer_interface.h"
#include "video_core/renderer_base.h"
+#define jconst [[maybe_unused]] const auto
+#define jauto [[maybe_unused]] auto
+
namespace {
class EmulationSession final {
@@ -98,8 +102,8 @@ public:
}
int InstallFileToNand(std::string filename) {
- const auto copy_func = [](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest,
- std::size_t block_size) {
+ jconst copy_func = [](const FileSys::VirtualFile& src, const FileSys::VirtualFile& dest,
+ std::size_t block_size) {
if (src == nullptr || dest == nullptr) {
return false;
}
@@ -108,10 +112,10 @@ public:
}
using namespace Common::Literals;
- std::vector<u8> buffer(1_MiB);
+ [[maybe_unused]] std::vector<u8> buffer(1_MiB);
for (std::size_t i = 0; i < src->GetSize(); i += buffer.size()) {
- const auto read = src->Read(buffer.data(), buffer.size(), i);
+ jconst read = src->Read(buffer.data(), buffer.size(), i);
dest->Write(buffer.data(), read, i);
}
return true;
@@ -128,14 +132,14 @@ public:
m_system.SetContentProvider(std::make_unique<FileSys::ContentProviderUnion>());
m_system.GetFileSystemController().CreateFactories(*m_vfs);
- std::shared_ptr<FileSys::NSP> nsp;
+ [[maybe_unused]] std::shared_ptr<FileSys::NSP> nsp;
if (filename.ends_with("nsp")) {
nsp = std::make_shared<FileSys::NSP>(m_vfs->OpenFile(filename, FileSys::Mode::Read));
if (nsp->IsExtractedType()) {
return InstallError;
}
} else if (filename.ends_with("xci")) {
- const auto xci =
+ jconst xci =
std::make_shared<FileSys::XCI>(m_vfs->OpenFile(filename, FileSys::Mode::Read));
nsp = xci->GetSecurePartitionNSP();
} else {
@@ -150,7 +154,7 @@ public:
return InstallError;
}
- const auto res = m_system.GetFileSystemController().GetUserNANDContents()->InstallEntry(
+ jconst res = m_system.GetFileSystemController().GetUserNANDContents()->InstallEntry(
*nsp, true, copy_func);
switch (res) {
@@ -233,10 +237,11 @@ public:
m_system.SetFilesystem(m_vfs);
// Initialize system.
- auto android_keyboard = std::make_unique<SoftwareKeyboard::AndroidKeyboard>();
+ jauto android_keyboard = std::make_unique<SoftwareKeyboard::AndroidKeyboard>();
m_software_keyboard = android_keyboard.get();
m_system.SetShuttingDown(false);
m_system.ApplySettings();
+ Settings::LogSettings();
m_system.HIDCore().ReloadInputDevices();
m_system.SetAppletFrontendSet({
nullptr, // Amiibo Settings
@@ -330,7 +335,7 @@ public:
while (true) {
{
- std::unique_lock lock(m_mutex);
+ [[maybe_unused]] std::unique_lock lock(m_mutex);
if (m_cv.wait_for(lock, std::chrono::milliseconds(800),
[&]() { return !m_is_running; })) {
// Emulation halted.
@@ -362,7 +367,7 @@ public:
}
bool IsHandheldOnly() {
- const auto npad_style_set = m_system.HIDCore().GetSupportedStyleTag();
+ jconst npad_style_set = m_system.HIDCore().GetSupportedStyleTag();
if (npad_style_set.fullkey == 1) {
return false;
@@ -375,17 +380,17 @@ public:
return !Settings::values.use_docked_mode.GetValue();
}
- void SetDeviceType(int index, int type) {
- auto controller = m_system.HIDCore().GetEmulatedControllerByIndex(index);
+ void SetDeviceType([[maybe_unused]] int index, int type) {
+ jauto controller = m_system.HIDCore().GetEmulatedControllerByIndex(index);
controller->SetNpadStyleIndex(static_cast<Core::HID::NpadStyleIndex>(type));
}
- void OnGamepadConnectEvent(int index) {
- auto controller = m_system.HIDCore().GetEmulatedControllerByIndex(index);
+ void OnGamepadConnectEvent([[maybe_unused]] int index) {
+ jauto controller = m_system.HIDCore().GetEmulatedControllerByIndex(index);
// Ensure that player1 is configured correctly and handheld disconnected
if (controller->GetNpadIdType() == Core::HID::NpadIdType::Player1) {
- auto handheld =
+ jauto handheld =
m_system.HIDCore().GetEmulatedController(Core::HID::NpadIdType::Handheld);
if (controller->GetNpadStyleIndex() == Core::HID::NpadStyleIndex::Handheld) {
@@ -397,7 +402,8 @@ public:
// Ensure that handheld is configured correctly and player 1 disconnected
if (controller->GetNpadIdType() == Core::HID::NpadIdType::Handheld) {
- auto player1 = m_system.HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
+ jauto player1 =
+ m_system.HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
if (controller->GetNpadStyleIndex() != Core::HID::NpadStyleIndex::Handheld) {
player1->SetNpadStyleIndex(Core::HID::NpadStyleIndex::Handheld);
@@ -411,8 +417,8 @@ public:
}
}
- void OnGamepadDisconnectEvent(int index) {
- auto controller = m_system.HIDCore().GetEmulatedControllerByIndex(index);
+ void OnGamepadDisconnectEvent([[maybe_unused]] int index) {
+ jauto controller = m_system.HIDCore().GetEmulatedControllerByIndex(index);
controller->Disconnect();
}
@@ -428,7 +434,7 @@ private:
};
RomMetadata GetRomMetadata(const std::string& path) {
- if (auto search = m_rom_metadata_cache.find(path); search != m_rom_metadata_cache.end()) {
+ if (jauto search = m_rom_metadata_cache.find(path); search != m_rom_metadata_cache.end()) {
return search->second;
}
@@ -436,14 +442,14 @@ private:
}
RomMetadata CacheRomMetadata(const std::string& path) {
- const auto file = Core::GetGameFileFromPath(m_vfs, path);
- auto loader = Loader::GetLoader(EmulationSession::GetInstance().System(), file, 0, 0);
+ jconst file = Core::GetGameFileFromPath(m_vfs, path);
+ jauto loader = Loader::GetLoader(EmulationSession::GetInstance().System(), file, 0, 0);
RomMetadata entry;
loader->ReadTitle(entry.title);
loader->ReadIcon(entry.icon);
if (loader->GetFileType() == Loader::FileType::NRO) {
- auto loader_nro = dynamic_cast<Loader::AppLoader_NRO*>(loader.get());
+ jauto loader_nro = dynamic_cast<Loader::AppLoader_NRO*>(loader.get());
entry.isHomebrew = loader_nro->IsHomebrew();
} else {
entry.isHomebrew = false;
@@ -514,7 +520,7 @@ static Core::SystemResultStatus RunEmulation(const std::string& filepath) {
SCOPE_EXIT({ EmulationSession::GetInstance().ShutdownEmulation(); });
- const auto result = EmulationSession::GetInstance().InitializeEmulation(filepath);
+ jconst result = EmulationSession::GetInstance().InitializeEmulation(filepath);
if (result != Core::SystemResultStatus::Success) {
return result;
}
@@ -526,83 +532,104 @@ static Core::SystemResultStatus RunEmulation(const std::string& filepath) {
extern "C" {
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceChanged(JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- jobject surf) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceChanged(JNIEnv* env, jobject instance,
+ [[maybe_unused]] jobject surf) {
EmulationSession::GetInstance().SetNativeWindow(ANativeWindow_fromSurface(env, surf));
EmulationSession::GetInstance().SurfaceChanged();
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceDestroyed(JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_surfaceDestroyed(JNIEnv* env, jobject instance) {
ANativeWindow_release(EmulationSession::GetInstance().NativeWindow());
EmulationSession::GetInstance().SetNativeWindow(nullptr);
EmulationSession::GetInstance().SurfaceChanged();
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- jstring j_directory) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_setAppDirectory(JNIEnv* env, jobject instance,
+ [[maybe_unused]] jstring j_directory) {
Common::FS::SetAppDirectory(GetJString(env, j_directory));
}
-int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- jstring j_file) {
+int Java_org_yuzu_yuzu_1emu_NativeLibrary_installFileToNand(JNIEnv* env, jobject instance,
+ [[maybe_unused]] jstring j_file) {
return EmulationSession::GetInstance().InstallFileToNand(GetJString(env, j_file));
}
-void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver(
- JNIEnv* env, [[maybe_unused]] jclass clazz, jstring hook_lib_dir, jstring custom_driver_dir,
- jstring custom_driver_name, jstring file_redirect_dir) {
+void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeGpuDriver(JNIEnv* env, jclass clazz,
+ jstring hook_lib_dir,
+ jstring custom_driver_dir,
+ jstring custom_driver_name,
+ jstring file_redirect_dir) {
EmulationSession::GetInstance().InitializeGpuDriver(
GetJString(env, hook_lib_dir), GetJString(env, custom_driver_dir),
GetJString(env, custom_driver_name), GetJString(env, file_redirect_dir));
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadKeys(JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+[[maybe_unused]] static bool CheckKgslPresent() {
+ constexpr auto KgslPath{"/dev/kgsl-3d0"};
+
+ return access(KgslPath, F_OK) == 0;
+}
+
+[[maybe_unused]] bool SupportsCustomDriver() {
+ return android_get_device_api_level() >= 28 && CheckKgslPresent();
+}
+
+jboolean JNICALL Java_org_yuzu_yuzu_1emu_utils_GpuDriverHelper_supportsCustomDriverLoading(
+ JNIEnv* env, jobject instance) {
+#ifdef ARCHITECTURE_arm64
+ // If the KGSL device exists custom drivers can be loaded using adrenotools
+ return SupportsCustomDriver();
+#else
+ return false;
+#endif
+}
+
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadKeys(JNIEnv* env, jclass clazz) {
Core::Crypto::KeyManager::Instance().ReloadKeys();
return static_cast<jboolean>(Core::Crypto::KeyManager::Instance().AreKeysLoaded());
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_unPauseEmulation([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_unpauseEmulation(JNIEnv* env, jclass clazz) {
EmulationSession::GetInstance().UnPauseEmulation();
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_pauseEmulation([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_pauseEmulation(JNIEnv* env, jclass clazz) {
EmulationSession::GetInstance().PauseEmulation();
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_stopEmulation([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_stopEmulation(JNIEnv* env, jclass clazz) {
EmulationSession::GetInstance().HaltEmulation();
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_resetRomMetadata([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_resetRomMetadata(JNIEnv* env, jclass clazz) {
EmulationSession::GetInstance().ResetRomMetadata();
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isRunning([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isRunning(JNIEnv* env, jclass clazz) {
return static_cast<jboolean>(EmulationSession::GetInstance().IsRunning());
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isPaused([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isPaused(JNIEnv* env, jclass clazz) {
return static_cast<jboolean>(EmulationSession::GetInstance().IsPaused());
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHandheldOnly([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_muteAduio(JNIEnv* env, jclass clazz) {
+ Settings::values.audio_muted = true;
+}
+
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_unmuteAudio(JNIEnv* env, jclass clazz) {
+ Settings::values.audio_muted = false;
+}
+
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isMuted(JNIEnv* env, jclass clazz) {
+ return static_cast<jboolean>(Settings::values.audio_muted.GetValue());
+}
+
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHandheldOnly(JNIEnv* env, jclass clazz) {
return EmulationSession::GetInstance().IsHandheldOnly();
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType(JNIEnv* env, jclass clazz,
jint j_device, jint j_type) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().SetDeviceType(j_device, j_type);
@@ -610,8 +637,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType([[maybe_unused]] JN
return static_cast<jboolean>(true);
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent(JNIEnv* env, jclass clazz,
jint j_device) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().OnGamepadConnectEvent(j_device);
@@ -619,17 +645,16 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent([[maybe_unu
return static_cast<jboolean>(true);
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadDisconnectEvent(
- [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, jint j_device) {
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadDisconnectEvent(JNIEnv* env, jclass clazz,
+ jint j_device) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().OnGamepadDisconnectEvent(j_device);
}
return static_cast<jboolean>(true);
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadButtonEvent([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- [[maybe_unused]] jint j_device,
- jint j_button, jint action) {
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadButtonEvent(JNIEnv* env, jclass clazz,
+ jint j_device, jint j_button,
+ jint action) {
if (EmulationSession::GetInstance().IsRunning()) {
// Ensure gamepad is connected
EmulationSession::GetInstance().OnGamepadConnectEvent(j_device);
@@ -639,8 +664,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadButtonEvent([[maybe_unus
return static_cast<jboolean>(true);
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadJoystickEvent([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadJoystickEvent(JNIEnv* env, jclass clazz,
jint j_device, jint stick_id,
jfloat x, jfloat y) {
if (EmulationSession::GetInstance().IsRunning()) {
@@ -650,9 +674,8 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadJoystickEvent([[maybe_un
}
jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMotionEvent(
- [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, jint j_device,
- jlong delta_timestamp, jfloat gyro_x, jfloat gyro_y, jfloat gyro_z, jfloat accel_x,
- jfloat accel_y, jfloat accel_z) {
+ JNIEnv* env, jclass clazz, jint j_device, jlong delta_timestamp, jfloat gyro_x, jfloat gyro_y,
+ jfloat gyro_z, jfloat accel_x, jfloat accel_y, jfloat accel_z) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().Window().OnGamepadMotionEvent(
j_device, delta_timestamp, gyro_x, gyro_y, gyro_z, accel_x, accel_y, accel_z);
@@ -660,8 +683,7 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMotionEvent(
return static_cast<jboolean>(true);
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag(JNIEnv* env, jclass clazz,
jbyteArray j_data) {
jboolean isCopy{false};
std::span<u8> data(reinterpret_cast<u8*>(env->GetByteArrayElements(j_data, &isCopy)),
@@ -673,108 +695,92 @@ jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag([[maybe_unused]] JNI
return static_cast<jboolean>(true);
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onRemoveNfcTag([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_onRemoveNfcTag(JNIEnv* env, jclass clazz) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().Window().OnRemoveNfcTag();
}
return static_cast<jboolean>(true);
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchPressed([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz, jint id,
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchPressed(JNIEnv* env, jclass clazz, jint id,
jfloat x, jfloat y) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().Window().OnTouchPressed(id, x, y);
}
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchMoved([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz, jint id,
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchMoved(JNIEnv* env, jclass clazz, jint id,
jfloat x, jfloat y) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().Window().OnTouchMoved(id, x, y);
}
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz, jint id) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchReleased(JNIEnv* env, jclass clazz, jint id) {
if (EmulationSession::GetInstance().IsRunning()) {
EmulationSession::GetInstance().Window().OnTouchReleased(id);
}
}
-jbyteArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getIcon([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- [[maybe_unused]] jstring j_filename) {
- auto icon_data = EmulationSession::GetInstance().GetRomIcon(GetJString(env, j_filename));
+jbyteArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getIcon(JNIEnv* env, jclass clazz,
+ jstring j_filename) {
+ jauto icon_data = EmulationSession::GetInstance().GetRomIcon(GetJString(env, j_filename));
jbyteArray icon = env->NewByteArray(static_cast<jsize>(icon_data.size()));
env->SetByteArrayRegion(icon, 0, env->GetArrayLength(icon),
reinterpret_cast<jbyte*>(icon_data.data()));
return icon;
}
-jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getTitle([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- [[maybe_unused]] jstring j_filename) {
- auto title = EmulationSession::GetInstance().GetRomTitle(GetJString(env, j_filename));
+jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getTitle(JNIEnv* env, jclass clazz,
+ jstring j_filename) {
+ jauto title = EmulationSession::GetInstance().GetRomTitle(GetJString(env, j_filename));
return env->NewStringUTF(title.c_str());
}
-jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getDescription([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getDescription(JNIEnv* env, jclass clazz,
jstring j_filename) {
return j_filename;
}
-jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGameId([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getGameId(JNIEnv* env, jclass clazz,
jstring j_filename) {
return j_filename;
}
-jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getRegions([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- [[maybe_unused]] jstring j_filename) {
+jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getRegions(JNIEnv* env, jclass clazz,
+ jstring j_filename) {
return env->NewStringUTF("");
}
-jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCompany([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- [[maybe_unused]] jstring j_filename) {
+jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getCompany(JNIEnv* env, jclass clazz,
+ jstring j_filename) {
return env->NewStringUTF("");
}
-jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHomebrew([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
- [[maybe_unused]] jstring j_filename) {
+jboolean Java_org_yuzu_yuzu_1emu_NativeLibrary_isHomebrew(JNIEnv* env, jclass clazz,
+ jstring j_filename) {
return EmulationSession::GetInstance().GetIsHomebrew(GetJString(env, j_filename));
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmulation
- [[maybe_unused]] (JNIEnv* env, [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_initializeEmulation(JNIEnv* env, jclass clazz) {
// Create the default config.ini.
Config{};
// Initialize the emulated system.
EmulationSession::GetInstance().System().Initialize();
}
-jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+jint Java_org_yuzu_yuzu_1emu_NativeLibrary_defaultCPUCore(JNIEnv* env, jclass clazz) {
return {};
}
void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2Ljava_lang_String_2Z(
- [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, [[maybe_unused]] jstring j_file,
- [[maybe_unused]] jstring j_savestate, [[maybe_unused]] jboolean j_delete_savestate) {}
+ JNIEnv* env, jclass clazz, jstring j_file, jstring j_savestate, jboolean j_delete_savestate) {}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadSettings([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_reloadSettings(JNIEnv* env, jclass clazz) {
Config{};
}
-jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getUserSetting([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getUserSetting(JNIEnv* env, jclass clazz,
jstring j_game_id, jstring j_section,
jstring j_key) {
std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
@@ -788,8 +794,7 @@ jstring Java_org_yuzu_yuzu_1emu_NativeLibrary_getUserSetting([[maybe_unused]] JN
return env->NewStringUTF("");
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_setUserSetting([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_setUserSetting(JNIEnv* env, jclass clazz,
jstring j_game_id, jstring j_section,
jstring j_key, jstring j_value) {
std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
@@ -803,20 +808,18 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_setUserSetting([[maybe_unused]] JNIEn
env->ReleaseStringUTFChars(j_value, value.data());
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_initGameIni([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_initGameIni(JNIEnv* env, jclass clazz,
jstring j_game_id) {
std::string_view game_id = env->GetStringUTFChars(j_game_id, 0);
env->ReleaseStringUTFChars(j_game_id, game_id.data());
}
-jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats(JNIEnv* env, jclass clazz) {
jdoubleArray j_stats = env->NewDoubleArray(4);
if (EmulationSession::GetInstance().IsRunning()) {
- const auto results = EmulationSession::GetInstance().PerfStats();
+ jconst results = EmulationSession::GetInstance().PerfStats();
// Converting the structure into an array makes it easier to pass it to the frontend
double stats[4] = {results.system_fps, results.average_game_fps, results.frametime,
@@ -828,11 +831,11 @@ jdoubleArray Java_org_yuzu_yuzu_1emu_NativeLibrary_getPerfStats([[maybe_unused]]
return j_stats;
}
-void Java_org_yuzu_yuzu_1emu_utils_DirectoryInitialization_setSysDirectory(
- [[maybe_unused]] JNIEnv* env, [[maybe_unused]] jclass clazz, jstring j_path) {}
+void Java_org_yuzu_yuzu_1emu_utils_DirectoryInitialization_setSysDirectory(JNIEnv* env,
+ jclass clazz,
+ jstring j_path) {}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz,
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2(JNIEnv* env, jclass clazz,
jstring j_path) {
const std::string path = GetJString(env, j_path);
@@ -843,8 +846,7 @@ void Java_org_yuzu_yuzu_1emu_NativeLibrary_run__Ljava_lang_String_2([[maybe_unus
}
}
-void Java_org_yuzu_yuzu_1emu_NativeLibrary_logDeviceInfo([[maybe_unused]] JNIEnv* env,
- [[maybe_unused]] jclass clazz) {
+void Java_org_yuzu_yuzu_1emu_NativeLibrary_logDeviceInfo(JNIEnv* env, jclass clazz) {
LOG_INFO(Frontend, "yuzu Version: {}-{}", Common::g_scm_branch, Common::g_scm_desc);
LOG_INFO(Frontend, "Host OS: Android API level {}", android_get_device_api_level());
}
diff --git a/src/android/app/src/main/jni/native.h b/src/android/app/src/main/jni/native.h
deleted file mode 100644
index 24dcbbcb8..000000000
--- a/src/android/app/src/main/jni/native.h
+++ /dev/null
@@ -1,165 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <jni.h>
-
-// Function calls from the Java side
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_UnPauseEmulation(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_PauseEmulation(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_StopEmulation(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_ResetRomMetadata(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_IsRunning(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_isHandheldOnly(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_setDeviceType(JNIEnv* env,
- jclass clazz,
- jstring j_device,
- jstring j_type);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadConnectEvent(
- JNIEnv* env, jclass clazz, jstring j_device);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadDisconnectEvent(
- JNIEnv* env, jclass clazz, jstring j_device);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadEvent(
- JNIEnv* env, jclass clazz, jstring j_device, jint j_button, jint action);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadMoveEvent(
- JNIEnv* env, jclass clazz, jstring j_device, jint axis, jfloat x, jfloat y);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onGamePadAxisEvent(
- JNIEnv* env, jclass clazz, jstring j_device, jint axis_id, jfloat axis_val);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onReadNfcTag(JNIEnv* env,
- jclass clazz,
- jbyteArray j_data);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onRemoveNfcTag(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchEvent(JNIEnv* env,
- jclass clazz,
- jfloat x, jfloat y,
- jboolean pressed);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_onTouchMoved(JNIEnv* env, jclass clazz,
- jfloat x, jfloat y);
-
-JNIEXPORT jbyteArray JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetIcon(JNIEnv* env,
- jclass clazz,
- jstring j_file);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetTitle(JNIEnv* env, jclass clazz,
- jstring j_filename);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetDescription(JNIEnv* env,
- jclass clazz,
- jstring j_filename);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetGameId(JNIEnv* env, jclass clazz,
- jstring j_filename);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetRegions(JNIEnv* env,
- jclass clazz,
- jstring j_filename);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetCompany(JNIEnv* env,
- jclass clazz,
- jstring j_filename);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetGitRevision(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetAppDirectory(JNIEnv* env,
- jclass clazz,
- jstring j_directory);
-
-JNIEXPORT void JNICALL
-Java_org_yuzu_yuzu_1emu_NativeLibrary_Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeGpuDriver(
- JNIEnv* env, jclass clazz, jstring hook_lib_dir, jstring custom_driver_dir,
- jstring custom_driver_name, jstring file_redirect_dir);
-
-JNIEXPORT jboolean JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_ReloadKeys(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_utils_DirectoryInitialization_SetSysDirectory(
- JNIEnv* env, jclass clazz, jstring path_);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetSysDirectory(JNIEnv* env,
- jclass clazz,
- jstring path);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitializeEmulation(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT jint JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_DefaultCPUCore(JNIEnv* env,
- jclass clazz);
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetProfiling(JNIEnv* env, jclass clazz,
- jboolean enable);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_WriteProfileResults(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_NotifyOrientationChange(
- JNIEnv* env, jclass clazz, jint layout_option, jint rotation);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_Run__Ljava_lang_String_2(
- JNIEnv* env, jclass clazz, jstring j_path);
-
-JNIEXPORT void JNICALL
-Java_org_yuzu_yuzu_1emu_NativeLibrary_Run__Ljava_lang_String_2Ljava_lang_String_2Z(
- JNIEnv* env, jclass clazz, jstring j_file, jstring j_savestate, jboolean j_delete_savestate);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SurfaceChanged(JNIEnv* env,
- jclass clazz,
- jobject surf);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SurfaceDestroyed(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_InitGameIni(JNIEnv* env, jclass clazz,
- jstring j_game_id);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_ReloadSettings(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SetUserSetting(
- JNIEnv* env, jclass clazz, jstring j_game_id, jstring j_section, jstring j_key,
- jstring j_value);
-
-JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetUserSetting(
- JNIEnv* env, jclass clazz, jstring game_id, jstring section, jstring key);
-
-JNIEXPORT jdoubleArray JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_GetPerfStats(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_LogDeviceInfo(JNIEnv* env,
- jclass clazz);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SubmitInlineKeyboardText(
- JNIEnv* env, jclass clazz, jstring j_text);
-
-JNIEXPORT void JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_SubmitInlineKeyboardInput(
- JNIEnv* env, jclass clazz, jint j_key_code);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/src/android/app/src/main/res/drawable/ic_pip_mute.xml b/src/android/app/src/main/res/drawable/ic_pip_mute.xml
new file mode 100644
index 000000000..a271c5fe8
--- /dev/null
+++ b/src/android/app/src/main/res/drawable/ic_pip_mute.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M7,9v6h4l5,5V4l-5,5H7z" />
+</vector>
diff --git a/src/android/app/src/main/res/drawable/ic_pip_unmute.xml b/src/android/app/src/main/res/drawable/ic_pip_unmute.xml
new file mode 100644
index 000000000..f7ed0862e
--- /dev/null
+++ b/src/android/app/src/main/res/drawable/ic_pip_unmute.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportHeight="24"
+ android:viewportWidth="24">
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M3,9v6h4l5,5L12,4L7,9L3,9zM16.5,12c0,-1.77 -1.02,-3.29 -2.5,-4.03v8.05c1.48,-0.73 2.5,-2.25 2.5,-4.02zM14,3.23v2.06c2.89,0.86 5,3.54 5,6.71s-2.11,5.85 -5,6.71v2.06c4.01,-0.91 7,-4.49 7,-8.77s-2.99,-7.86 -7,-8.77z" />
+</vector>
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index cc1d8c39d..af7450619 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -104,12 +104,14 @@
<string name="share_log_missing">No log file found</string>
<string name="install_game_content">Install game content</string>
<string name="install_game_content_description">Install game updates or DLC</string>
- <string name="install_game_content_failure">Error installing file to NAND</string>
- <string name="install_game_content_failure_description">Game content installation failed. Please ensure content is valid and that the prod.keys file is installed.</string>
- <string name="install_game_content_failure_base">Installation of base games isn\'t permitted in order to avoid possible conflicts. Please select an update or DLC instead.</string>
- <string name="install_game_content_failure_file_extension">The selected file type is not supported. Only NSP and XCI content is supported for this action. Please verify the game content is valid.</string>
- <string name="install_game_content_success">Game content installed successfully</string>
- <string name="install_game_content_success_overwrite">Game content was overwritten successfully</string>
+ <string name="install_game_content_failure">Error installing file(s) to NAND</string>
+ <string name="install_game_content_failure_description">Please ensure content(s) are valid and that the prod.keys file is installed.</string>
+ <string name="install_game_content_failure_base">Installation of base games isn\'t permitted in order to avoid possible conflicts.</string>
+ <string name="install_game_content_failure_file_extension">Only NSP and XCI content is supported. Please verify the game content(s) are valid.</string>
+ <string name="install_game_content_failed_count">%1$d installation error(s)</string>
+ <string name="install_game_content_success">Game content(s) installed successfully</string>
+ <string name="install_game_content_success_install">%1$d installed successfully</string>
+ <string name="install_game_content_success_overwrite">%1$d overwritten successfully</string>
<string name="install_game_content_help_link">https://yuzu-emu.org/help/quickstart/#dumping-installed-updates</string>
<!-- About screen strings -->
@@ -270,6 +272,7 @@
<string name="fatal_error">Fatal Error</string>
<string name="fatal_error_message">A fatal error occurred. Check the log for details.\nContinuing emulation may result in crashes and bugs.</string>
<string name="performance_warning">Turning off this setting will significantly reduce emulation performance! For the best experience, it is recommended that you leave this setting enabled.</string>
+ <string name="device_memory_inadequate">Device RAM: %1$s\nRecommended: %2$s</string>
<!-- Region Names -->
<string name="region_japan">Japan</string>
@@ -300,6 +303,15 @@
<string name="language_traditional_chinese">Traditional Chinese (正體中文)</string>
<string name="language_brazilian_portuguese">Brazilian Portuguese (Português do Brasil)</string>
+ <!-- Memory Sizes -->
+ <string name="memory_byte">Byte</string>
+ <string name="memory_kilobyte">KB</string>
+ <string name="memory_megabyte">MB</string>
+ <string name="memory_gigabyte">GB</string>
+ <string name="memory_terabyte">TB</string>
+ <string name="memory_petabyte">PB</string>
+ <string name="memory_exabyte">EB</string>
+
<!-- Renderer APIs -->
<string name="renderer_vulkan">Vulkan</string>
<string name="renderer_none">None</string>
@@ -387,6 +399,8 @@
<string name="picture_in_picture_description">Minimize window when placed in the background</string>
<string name="pause">Pause</string>
<string name="play">Play</string>
+ <string name="mute">Mute</string>
+ <string name="unmute">Unmute</string>
<!-- Licenses screen strings -->
<string name="licenses">Licenses</string>
diff --git a/src/android/gradle.properties b/src/android/gradle.properties
index e2f278f33..4fca1b576 100644
--- a/src/android/gradle.properties
+++ b/src/android/gradle.properties
@@ -15,3 +15,6 @@ android.useAndroidX=true
kotlin.code.style=official
kotlin.parallel.tasks.in.project=true
android.defaults.buildfeatures.buildconfig=true
+
+# Android Gradle plugin 8.0.2
+android.suppressUnsupportedCompileSdk=34
diff --git a/src/audio_core/device/audio_buffers.h b/src/audio_core/device/audio_buffers.h
index 15082f6c6..5d8ed0ef7 100644
--- a/src/audio_core/device/audio_buffers.h
+++ b/src/audio_core/device/audio_buffers.h
@@ -7,6 +7,7 @@
#include <mutex>
#include <span>
#include <vector>
+#include <boost/container/static_vector.hpp>
#include "audio_buffer.h"
#include "audio_core/device/device_session.h"
@@ -48,7 +49,7 @@ public:
*
* @param out_buffers - The buffers which were registered.
*/
- void RegisterBuffers(std::vector<AudioBuffer>& out_buffers) {
+ void RegisterBuffers(boost::container::static_vector<AudioBuffer, N>& out_buffers) {
std::scoped_lock l{lock};
const s32 to_register{std::min(std::min(appended_count, BufferAppendLimit),
BufferAppendLimit - registered_count)};
@@ -162,7 +163,8 @@ public:
* @param max_buffers - Maximum number of buffers to released.
* @return The number of buffers released.
*/
- u32 GetRegisteredAppendedBuffers(std::vector<AudioBuffer>& buffers_flushed, u32 max_buffers) {
+ u32 GetRegisteredAppendedBuffers(
+ boost::container::static_vector<AudioBuffer, N>& buffers_flushed, u32 max_buffers) {
std::scoped_lock l{lock};
if (registered_count + appended_count == 0) {
return 0;
@@ -270,7 +272,7 @@ public:
*/
bool FlushBuffers(u32& buffers_released) {
std::scoped_lock l{lock};
- std::vector<AudioBuffer> buffers_flushed{};
+ boost::container::static_vector<AudioBuffer, N> buffers_flushed{};
buffers_released = GetRegisteredAppendedBuffers(buffers_flushed, append_limit);
diff --git a/src/audio_core/device/device_session.cpp b/src/audio_core/device/device_session.cpp
index b5c0ef0e6..86811fcb8 100644
--- a/src/audio_core/device/device_session.cpp
+++ b/src/audio_core/device/device_session.cpp
@@ -79,7 +79,7 @@ void DeviceSession::ClearBuffers() {
}
}
-void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) const {
+void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) {
for (const auto& buffer : buffers) {
Sink::SinkBuffer new_buffer{
.frames = buffer.size / (channel_count * sizeof(s16)),
@@ -88,13 +88,13 @@ void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) const {
.consumed = false,
};
+ tmp_samples.resize_destructive(buffer.size / sizeof(s16));
if (type == Sink::StreamType::In) {
- std::vector<s16> samples{};
- stream->AppendBuffer(new_buffer, samples);
+ stream->AppendBuffer(new_buffer, tmp_samples);
} else {
- std::vector<s16> samples(buffer.size / sizeof(s16));
- system.ApplicationMemory().ReadBlockUnsafe(buffer.samples, samples.data(), buffer.size);
- stream->AppendBuffer(new_buffer, samples);
+ system.ApplicationMemory().ReadBlockUnsafe(buffer.samples, tmp_samples.data(),
+ buffer.size);
+ stream->AppendBuffer(new_buffer, tmp_samples);
}
}
}
diff --git a/src/audio_core/device/device_session.h b/src/audio_core/device/device_session.h
index 75f766c68..7d52f362d 100644
--- a/src/audio_core/device/device_session.h
+++ b/src/audio_core/device/device_session.h
@@ -10,6 +10,7 @@
#include "audio_core/common/common.h"
#include "audio_core/sink/sink.h"
+#include "common/scratch_buffer.h"
#include "core/hle/service/audio/errors.h"
namespace Core {
@@ -62,7 +63,7 @@ public:
*
* @param buffers - The buffers to play.
*/
- void AppendBuffers(std::span<const AudioBuffer> buffers) const;
+ void AppendBuffers(std::span<const AudioBuffer> buffers);
/**
* (Audio In only) Pop samples from the backend, and write them back to this buffer's address.
@@ -146,8 +147,8 @@ private:
std::shared_ptr<Core::Timing::EventType> thread_event;
/// Is this session initialised?
bool initialized{};
- /// Buffer queue
- std::vector<AudioBuffer> buffer_queue{};
+ /// Temporary sample buffer
+ Common::ScratchBuffer<s16> tmp_samples{};
};
} // namespace AudioCore
diff --git a/src/audio_core/in/audio_in_system.cpp b/src/audio_core/in/audio_in_system.cpp
index e23e51758..579129121 100644
--- a/src/audio_core/in/audio_in_system.cpp
+++ b/src/audio_core/in/audio_in_system.cpp
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include <mutex>
+
#include "audio_core/audio_event.h"
#include "audio_core/audio_manager.h"
#include "audio_core/in/audio_in_system.h"
@@ -89,7 +90,7 @@ Result System::Start() {
session->Start();
state = State::Started;
- std::vector<AudioBuffer> buffers_to_flush{};
+ boost::container::static_vector<AudioBuffer, BufferCount> buffers_to_flush{};
buffers.RegisterBuffers(buffers_to_flush);
session->AppendBuffers(buffers_to_flush);
session->SetRingSize(static_cast<u32>(buffers_to_flush.size()));
@@ -134,7 +135,7 @@ bool System::AppendBuffer(const AudioInBuffer& buffer, const u64 tag) {
void System::RegisterBuffers() {
if (state == State::Started) {
- std::vector<AudioBuffer> registered_buffers{};
+ boost::container::static_vector<AudioBuffer, BufferCount> registered_buffers{};
buffers.RegisterBuffers(registered_buffers);
session->AppendBuffers(registered_buffers);
}
diff --git a/src/audio_core/out/audio_out_system.cpp b/src/audio_core/out/audio_out_system.cpp
index bd13f7219..0adf64bd3 100644
--- a/src/audio_core/out/audio_out_system.cpp
+++ b/src/audio_core/out/audio_out_system.cpp
@@ -89,7 +89,7 @@ Result System::Start() {
session->Start();
state = State::Started;
- std::vector<AudioBuffer> buffers_to_flush{};
+ boost::container::static_vector<AudioBuffer, BufferCount> buffers_to_flush{};
buffers.RegisterBuffers(buffers_to_flush);
session->AppendBuffers(buffers_to_flush);
session->SetRingSize(static_cast<u32>(buffers_to_flush.size()));
@@ -134,7 +134,7 @@ bool System::AppendBuffer(const AudioOutBuffer& buffer, u64 tag) {
void System::RegisterBuffers() {
if (state == State::Started) {
- std::vector<AudioBuffer> registered_buffers{};
+ boost::container::static_vector<AudioBuffer, BufferCount> registered_buffers{};
buffers.RegisterBuffers(registered_buffers);
session->AppendBuffers(registered_buffers);
}
diff --git a/src/audio_core/renderer/adsp/adsp.cpp b/src/audio_core/renderer/adsp/adsp.cpp
index 74772fc50..b1db31e93 100644
--- a/src/audio_core/renderer/adsp/adsp.cpp
+++ b/src/audio_core/renderer/adsp/adsp.cpp
@@ -7,7 +7,6 @@
#include "common/logging/log.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
#include "core/memory.h"
namespace AudioCore::AudioRenderer::ADSP {
diff --git a/src/audio_core/renderer/adsp/audio_renderer.cpp b/src/audio_core/renderer/adsp/audio_renderer.cpp
index 8bc39f9f9..9ca716b60 100644
--- a/src/audio_core/renderer/adsp/audio_renderer.cpp
+++ b/src/audio_core/renderer/adsp/audio_renderer.cpp
@@ -13,7 +13,6 @@
#include "common/thread.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
MICROPROFILE_DEFINE(Audio_Renderer, "Audio", "DSP", MP_RGB(60, 19, 97));
@@ -144,6 +143,7 @@ void AudioRenderer::ThreadFunc(std::stop_token stop_token) {
mailbox->ADSPSendMessage(RenderMessage::AudioRenderer_InitializeOK);
+ // 0.12 seconds (2304000 / 19200000)
constexpr u64 max_process_time{2'304'000ULL};
while (!stop_token.stop_requested()) {
@@ -184,8 +184,7 @@ void AudioRenderer::ThreadFunc(std::stop_token stop_token) {
u64 max_time{max_process_time};
if (index == 1 && command_buffer.applet_resource_user_id ==
mailbox->GetCommandBuffer(0).applet_resource_user_id) {
- max_time = max_process_time -
- Core::Timing::CyclesToNs(render_times_taken[0]).count();
+ max_time = max_process_time - render_times_taken[0];
if (render_times_taken[0] > max_process_time) {
max_time = 0;
}
diff --git a/src/audio_core/renderer/adsp/command_list_processor.cpp b/src/audio_core/renderer/adsp/command_list_processor.cpp
index 7a300d216..3a0f1ae38 100644
--- a/src/audio_core/renderer/adsp/command_list_processor.cpp
+++ b/src/audio_core/renderer/adsp/command_list_processor.cpp
@@ -9,7 +9,6 @@
#include "common/settings.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
#include "core/memory.h"
namespace AudioCore::AudioRenderer::ADSP {
diff --git a/src/audio_core/renderer/command/data_source/decode.cpp b/src/audio_core/renderer/command/data_source/decode.cpp
index ff5d31bd6..f45933203 100644
--- a/src/audio_core/renderer/command/data_source/decode.cpp
+++ b/src/audio_core/renderer/command/data_source/decode.cpp
@@ -8,6 +8,7 @@
#include "audio_core/renderer/command/resample/resample.h"
#include "common/fixed_point.h"
#include "common/logging/log.h"
+#include "common/scratch_buffer.h"
#include "core/memory.h"
namespace AudioCore::AudioRenderer {
@@ -27,6 +28,7 @@ constexpr std::array<u8, 3> PitchBySrcQuality = {4, 8, 4};
template <typename T>
static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
const DecodeArg& req) {
+ std::array<T, TempBufferSize> tmp_samples{};
constexpr s32 min{std::numeric_limits<s16>::min()};
constexpr s32 max{std::numeric_limits<s16>::max()};
@@ -49,18 +51,17 @@ static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
const u64 size{channel_count * samples_to_decode};
const u64 size_bytes{size * sizeof(T)};
- std::vector<T> samples(size);
- memory.ReadBlockUnsafe(source, samples.data(), size_bytes);
+ memory.ReadBlockUnsafe(source, tmp_samples.data(), size_bytes);
if constexpr (std::is_floating_point_v<T>) {
for (u32 i = 0; i < samples_to_decode; i++) {
- auto sample{static_cast<s32>(samples[i * channel_count + req.target_channel] *
+ auto sample{static_cast<s32>(tmp_samples[i * channel_count + req.target_channel] *
std::numeric_limits<s16>::max())};
out_buffer[i] = static_cast<s16>(std::clamp(sample, min, max));
}
} else {
for (u32 i = 0; i < samples_to_decode; i++) {
- out_buffer[i] = samples[i * channel_count + req.target_channel];
+ out_buffer[i] = tmp_samples[i * channel_count + req.target_channel];
}
}
} break;
@@ -73,17 +74,16 @@ static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
}
const VAddr source{req.buffer + ((req.start_offset + req.offset) * sizeof(T))};
- std::vector<T> samples(samples_to_decode);
- memory.ReadBlockUnsafe(source, samples.data(), samples_to_decode * sizeof(T));
+ memory.ReadBlockUnsafe(source, tmp_samples.data(), samples_to_decode * sizeof(T));
if constexpr (std::is_floating_point_v<T>) {
for (u32 i = 0; i < samples_to_decode; i++) {
- auto sample{static_cast<s32>(samples[i * channel_count + req.target_channel] *
+ auto sample{static_cast<s32>(tmp_samples[i * channel_count + req.target_channel] *
std::numeric_limits<s16>::max())};
out_buffer[i] = static_cast<s16>(std::clamp(sample, min, max));
}
} else {
- std::memcpy(out_buffer.data(), samples.data(), samples_to_decode * sizeof(s16));
+ std::memcpy(out_buffer.data(), tmp_samples.data(), samples_to_decode * sizeof(s16));
}
break;
}
@@ -101,6 +101,7 @@ static u32 DecodePcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
*/
static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
const DecodeArg& req) {
+ std::array<u8, TempBufferSize> wavebuffer{};
constexpr u32 SamplesPerFrame{14};
constexpr u32 NibblesPerFrame{16};
@@ -138,9 +139,7 @@ static u32 DecodeAdpcm(Core::Memory::Memory& memory, std::span<s16> out_buffer,
}
const auto size{std::max((samples_to_process / 8U) * SamplesPerFrame, 8U)};
- std::vector<u8> wavebuffer(size);
- memory.ReadBlockUnsafe(req.buffer + position_in_frame / 2, wavebuffer.data(),
- wavebuffer.size());
+ memory.ReadBlockUnsafe(req.buffer + position_in_frame / 2, wavebuffer.data(), size);
auto context{req.adpcm_context};
auto header{context->header};
@@ -258,7 +257,7 @@ void DecodeFromWaveBuffers(Core::Memory::Memory& memory, const DecodeFromWaveBuf
u32 offset{voice_state.offset};
auto output_buffer{args.output};
- std::vector<s16> temp_buffer(TempBufferSize, 0);
+ std::array<s16, TempBufferSize> temp_buffer{};
while (remaining_sample_count > 0) {
const auto samples_to_write{std::min(remaining_sample_count, max_remaining_sample_count)};
diff --git a/src/audio_core/renderer/command/effect/compressor.cpp b/src/audio_core/renderer/command/effect/compressor.cpp
index 7229618e8..ee9b68d5b 100644
--- a/src/audio_core/renderer/command/effect/compressor.cpp
+++ b/src/audio_core/renderer/command/effect/compressor.cpp
@@ -44,8 +44,8 @@ static void InitializeCompressorEffect(const CompressorInfo::ParameterVersion2&
static void ApplyCompressorEffect(const CompressorInfo::ParameterVersion2& params,
CompressorInfo::State& state, bool enabled,
- std::vector<std::span<const s32>> input_buffers,
- std::vector<std::span<s32>> output_buffers, u32 sample_count) {
+ std::span<std::span<const s32>> input_buffers,
+ std::span<std::span<s32>> output_buffers, u32 sample_count) {
if (enabled) {
auto state_00{state.unk_00};
auto state_04{state.unk_04};
@@ -124,8 +124,8 @@ void CompressorCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor&
}
void CompressorCommand::Process(const ADSP::CommandListProcessor& processor) {
- std::vector<std::span<const s32>> input_buffers(parameter.channel_count);
- std::vector<std::span<s32>> output_buffers(parameter.channel_count);
+ std::array<std::span<const s32>, MaxChannels> input_buffers{};
+ std::array<std::span<s32>, MaxChannels> output_buffers{};
for (s16 i = 0; i < parameter.channel_count; i++) {
input_buffers[i] = processor.mix_buffers.subspan(inputs[i] * processor.sample_count,
diff --git a/src/audio_core/renderer/command/effect/delay.cpp b/src/audio_core/renderer/command/effect/delay.cpp
index a4e408d40..e536cbb1e 100644
--- a/src/audio_core/renderer/command/effect/delay.cpp
+++ b/src/audio_core/renderer/command/effect/delay.cpp
@@ -51,7 +51,7 @@ static void InitializeDelayEffect(const DelayInfo::ParameterVersion1& params,
state.delay_lines[channel].sample_count_max = sample_count_max.to_int_floor();
state.delay_lines[channel].sample_count = sample_count.to_int_floor();
state.delay_lines[channel].buffer.resize(state.delay_lines[channel].sample_count, 0);
- if (state.delay_lines[channel].buffer.size() == 0) {
+ if (state.delay_lines[channel].sample_count == 0) {
state.delay_lines[channel].buffer.push_back(0);
}
state.delay_lines[channel].buffer_pos = 0;
@@ -74,8 +74,8 @@ static void InitializeDelayEffect(const DelayInfo::ParameterVersion1& params,
*/
template <size_t NumChannels>
static void ApplyDelay(const DelayInfo::ParameterVersion1& params, DelayInfo::State& state,
- std::vector<std::span<const s32>>& inputs,
- std::vector<std::span<s32>>& outputs, const u32 sample_count) {
+ std::span<std::span<const s32>> inputs, std::span<std::span<s32>> outputs,
+ const u32 sample_count) {
for (u32 sample_index = 0; sample_index < sample_count; sample_index++) {
std::array<Common::FixedPoint<50, 14>, NumChannels> input_samples{};
for (u32 channel = 0; channel < NumChannels; channel++) {
@@ -153,8 +153,8 @@ static void ApplyDelay(const DelayInfo::ParameterVersion1& params, DelayInfo::St
* @param sample_count - Number of samples to process.
*/
static void ApplyDelayEffect(const DelayInfo::ParameterVersion1& params, DelayInfo::State& state,
- const bool enabled, std::vector<std::span<const s32>>& inputs,
- std::vector<std::span<s32>>& outputs, const u32 sample_count) {
+ const bool enabled, std::span<std::span<const s32>> inputs,
+ std::span<std::span<s32>> outputs, const u32 sample_count) {
if (!IsChannelCountValid(params.channel_count)) {
LOG_ERROR(Service_Audio, "Invalid delay channels {}", params.channel_count);
@@ -208,8 +208,8 @@ void DelayCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor& proce
}
void DelayCommand::Process(const ADSP::CommandListProcessor& processor) {
- std::vector<std::span<const s32>> input_buffers(parameter.channel_count);
- std::vector<std::span<s32>> output_buffers(parameter.channel_count);
+ std::array<std::span<const s32>, MaxChannels> input_buffers{};
+ std::array<std::span<s32>, MaxChannels> output_buffers{};
for (s16 i = 0; i < parameter.channel_count; i++) {
input_buffers[i] = processor.mix_buffers.subspan(inputs[i] * processor.sample_count,
diff --git a/src/audio_core/renderer/command/effect/i3dl2_reverb.cpp b/src/audio_core/renderer/command/effect/i3dl2_reverb.cpp
index 27d8b9844..d2bfb67cc 100644
--- a/src/audio_core/renderer/command/effect/i3dl2_reverb.cpp
+++ b/src/audio_core/renderer/command/effect/i3dl2_reverb.cpp
@@ -408,8 +408,8 @@ void I3dl2ReverbCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor&
}
void I3dl2ReverbCommand::Process(const ADSP::CommandListProcessor& processor) {
- std::vector<std::span<const s32>> input_buffers(parameter.channel_count);
- std::vector<std::span<s32>> output_buffers(parameter.channel_count);
+ std::array<std::span<const s32>, MaxChannels> input_buffers{};
+ std::array<std::span<s32>, MaxChannels> output_buffers{};
for (u32 i = 0; i < parameter.channel_count; i++) {
input_buffers[i] = processor.mix_buffers.subspan(inputs[i] * processor.sample_count,
diff --git a/src/audio_core/renderer/command/effect/light_limiter.cpp b/src/audio_core/renderer/command/effect/light_limiter.cpp
index e8fb0e2fc..4161a9821 100644
--- a/src/audio_core/renderer/command/effect/light_limiter.cpp
+++ b/src/audio_core/renderer/command/effect/light_limiter.cpp
@@ -47,8 +47,8 @@ static void InitializeLightLimiterEffect(const LightLimiterInfo::ParameterVersio
*/
static void ApplyLightLimiterEffect(const LightLimiterInfo::ParameterVersion2& params,
LightLimiterInfo::State& state, const bool enabled,
- std::vector<std::span<const s32>>& inputs,
- std::vector<std::span<s32>>& outputs, const u32 sample_count,
+ std::span<std::span<const s32>> inputs,
+ std::span<std::span<s32>> outputs, const u32 sample_count,
LightLimiterInfo::StatisticsInternal* statistics) {
constexpr s64 min{std::numeric_limits<s32>::min()};
constexpr s64 max{std::numeric_limits<s32>::max()};
@@ -147,8 +147,8 @@ void LightLimiterVersion1Command::Dump([[maybe_unused]] const ADSP::CommandListP
}
void LightLimiterVersion1Command::Process(const ADSP::CommandListProcessor& processor) {
- std::vector<std::span<const s32>> input_buffers(parameter.channel_count);
- std::vector<std::span<s32>> output_buffers(parameter.channel_count);
+ std::array<std::span<const s32>, MaxChannels> input_buffers{};
+ std::array<std::span<s32>, MaxChannels> output_buffers{};
for (u32 i = 0; i < parameter.channel_count; i++) {
input_buffers[i] = processor.mix_buffers.subspan(inputs[i] * processor.sample_count,
@@ -190,8 +190,8 @@ void LightLimiterVersion2Command::Dump([[maybe_unused]] const ADSP::CommandListP
}
void LightLimiterVersion2Command::Process(const ADSP::CommandListProcessor& processor) {
- std::vector<std::span<const s32>> input_buffers(parameter.channel_count);
- std::vector<std::span<s32>> output_buffers(parameter.channel_count);
+ std::array<std::span<const s32>, MaxChannels> input_buffers{};
+ std::array<std::span<s32>, MaxChannels> output_buffers{};
for (u32 i = 0; i < parameter.channel_count; i++) {
input_buffers[i] = processor.mix_buffers.subspan(inputs[i] * processor.sample_count,
diff --git a/src/audio_core/renderer/command/effect/reverb.cpp b/src/audio_core/renderer/command/effect/reverb.cpp
index 8b9b65214..fc2f15a5e 100644
--- a/src/audio_core/renderer/command/effect/reverb.cpp
+++ b/src/audio_core/renderer/command/effect/reverb.cpp
@@ -250,8 +250,8 @@ static Common::FixedPoint<50, 14> Axfx2AllPassTick(ReverbInfo::ReverbDelayLine&
*/
template <size_t NumChannels>
static void ApplyReverbEffect(const ReverbInfo::ParameterVersion2& params, ReverbInfo::State& state,
- std::vector<std::span<const s32>>& inputs,
- std::vector<std::span<s32>>& outputs, const u32 sample_count) {
+ std::span<std::span<const s32>> inputs,
+ std::span<std::span<s32>> outputs, const u32 sample_count) {
static constexpr std::array<u8, ReverbInfo::MaxDelayTaps> OutTapIndexes1Ch{
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
@@ -369,8 +369,8 @@ static void ApplyReverbEffect(const ReverbInfo::ParameterVersion2& params, Rever
* @param sample_count - Number of samples to process.
*/
static void ApplyReverbEffect(const ReverbInfo::ParameterVersion2& params, ReverbInfo::State& state,
- const bool enabled, std::vector<std::span<const s32>>& inputs,
- std::vector<std::span<s32>>& outputs, const u32 sample_count) {
+ const bool enabled, std::span<std::span<const s32>> inputs,
+ std::span<std::span<s32>> outputs, const u32 sample_count) {
if (enabled) {
switch (params.channel_count) {
case 0:
@@ -412,8 +412,8 @@ void ReverbCommand::Dump([[maybe_unused]] const ADSP::CommandListProcessor& proc
}
void ReverbCommand::Process(const ADSP::CommandListProcessor& processor) {
- std::vector<std::span<const s32>> input_buffers(parameter.channel_count);
- std::vector<std::span<s32>> output_buffers(parameter.channel_count);
+ std::array<std::span<const s32>, MaxChannels> input_buffers{};
+ std::array<std::span<s32>, MaxChannels> output_buffers{};
for (u32 i = 0; i < parameter.channel_count; i++) {
input_buffers[i] = processor.mix_buffers.subspan(inputs[i] * processor.sample_count,
diff --git a/src/audio_core/renderer/command/performance/performance.cpp b/src/audio_core/renderer/command/performance/performance.cpp
index 985958b03..4a881547f 100644
--- a/src/audio_core/renderer/command/performance/performance.cpp
+++ b/src/audio_core/renderer/command/performance/performance.cpp
@@ -5,7 +5,6 @@
#include "audio_core/renderer/command/performance/performance.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
namespace AudioCore::AudioRenderer {
@@ -18,20 +17,18 @@ void PerformanceCommand::Process(const ADSP::CommandListProcessor& processor) {
auto base{entry_address.translated_address};
if (state == PerformanceState::Start) {
auto start_time_ptr{reinterpret_cast<u32*>(base + entry_address.entry_start_time_offset)};
- *start_time_ptr = static_cast<u32>(
- Core::Timing::CyclesToUs(processor.system->CoreTiming().GetClockTicks() -
- processor.start_time - processor.current_processing_time)
- .count());
+ *start_time_ptr =
+ static_cast<u32>(processor.system->CoreTiming().GetClockTicks() - processor.start_time -
+ processor.current_processing_time);
} else if (state == PerformanceState::Stop) {
auto processed_time_ptr{
reinterpret_cast<u32*>(base + entry_address.entry_processed_time_offset)};
auto entry_count_ptr{
reinterpret_cast<u32*>(base + entry_address.header_entry_count_offset)};
- *processed_time_ptr = static_cast<u32>(
- Core::Timing::CyclesToUs(processor.system->CoreTiming().GetClockTicks() -
- processor.start_time - processor.current_processing_time)
- .count());
+ *processed_time_ptr =
+ static_cast<u32>(processor.system->CoreTiming().GetClockTicks() - processor.start_time -
+ processor.current_processing_time);
(*entry_count_ptr)++;
}
}
diff --git a/src/audio_core/renderer/command/sink/circular_buffer.cpp b/src/audio_core/renderer/command/sink/circular_buffer.cpp
index ded5afc94..e2ce59792 100644
--- a/src/audio_core/renderer/command/sink/circular_buffer.cpp
+++ b/src/audio_core/renderer/command/sink/circular_buffer.cpp
@@ -24,7 +24,7 @@ void CircularBufferSinkCommand::Process(const ADSP::CommandListProcessor& proces
constexpr s32 min{std::numeric_limits<s16>::min()};
constexpr s32 max{std::numeric_limits<s16>::max()};
- std::vector<s16> output(processor.sample_count);
+ std::array<s16, TargetSampleCount * MaxChannels> output{};
for (u32 channel = 0; channel < input_count; channel++) {
auto input{processor.mix_buffers.subspan(inputs[channel] * processor.sample_count,
processor.sample_count)};
@@ -33,7 +33,7 @@ void CircularBufferSinkCommand::Process(const ADSP::CommandListProcessor& proces
}
processor.memory->WriteBlockUnsafe(address + pos, output.data(),
- output.size() * sizeof(s16));
+ processor.sample_count * sizeof(s16));
pos += static_cast<u32>(processor.sample_count * sizeof(s16));
if (pos >= size) {
pos = 0;
diff --git a/src/audio_core/renderer/command/sink/device.cpp b/src/audio_core/renderer/command/sink/device.cpp
index e88372a75..5f74dd7ad 100644
--- a/src/audio_core/renderer/command/sink/device.cpp
+++ b/src/audio_core/renderer/command/sink/device.cpp
@@ -33,8 +33,7 @@ void DeviceSinkCommand::Process(const ADSP::CommandListProcessor& processor) {
.consumed{false},
};
- std::vector<s16> samples(out_buffer.frames * input_count);
-
+ std::array<s16, TargetSampleCount * MaxChannels> samples{};
for (u32 channel = 0; channel < input_count; channel++) {
const auto offset{inputs[channel] * out_buffer.frames};
@@ -45,7 +44,7 @@ void DeviceSinkCommand::Process(const ADSP::CommandListProcessor& processor) {
}
out_buffer.tag = reinterpret_cast<u64>(samples.data());
- stream->AppendBuffer(out_buffer, samples);
+ stream->AppendBuffer(out_buffer, {samples.data(), out_buffer.frames * input_count});
if (stream->IsPaused()) {
stream->Start();
diff --git a/src/audio_core/renderer/mix/mix_context.cpp b/src/audio_core/renderer/mix/mix_context.cpp
index 35b748ede..3a18ae7c2 100644
--- a/src/audio_core/renderer/mix/mix_context.cpp
+++ b/src/audio_core/renderer/mix/mix_context.cpp
@@ -125,10 +125,10 @@ bool MixContext::TSortInfo(const SplitterContext& splitter_context) {
return false;
}
- std::vector<s32> sorted_results{node_states.GetSortedResuls()};
- const auto result_size{std::min(count, static_cast<s32>(sorted_results.size()))};
+ auto sorted_results{node_states.GetSortedResuls()};
+ const auto result_size{std::min(count, static_cast<s32>(sorted_results.second))};
for (s32 i = 0; i < result_size; i++) {
- sorted_mix_infos[i] = &mix_infos[sorted_results[i]];
+ sorted_mix_infos[i] = &mix_infos[sorted_results.first[i]];
}
CalcMixBufferOffset();
diff --git a/src/audio_core/renderer/nodes/node_states.cpp b/src/audio_core/renderer/nodes/node_states.cpp
index 1821a51e6..b7a44a54c 100644
--- a/src/audio_core/renderer/nodes/node_states.cpp
+++ b/src/audio_core/renderer/nodes/node_states.cpp
@@ -134,8 +134,8 @@ u32 NodeStates::GetNodeCount() const {
return node_count;
}
-std::vector<s32> NodeStates::GetSortedResuls() const {
- return {results.rbegin(), results.rbegin() + result_pos};
+std::pair<std::span<u32>::reverse_iterator, size_t> NodeStates::GetSortedResuls() const {
+ return {results.rbegin(), result_pos};
}
} // namespace AudioCore::AudioRenderer
diff --git a/src/audio_core/renderer/nodes/node_states.h b/src/audio_core/renderer/nodes/node_states.h
index 94b1d1254..e768cd4b5 100644
--- a/src/audio_core/renderer/nodes/node_states.h
+++ b/src/audio_core/renderer/nodes/node_states.h
@@ -175,7 +175,7 @@ public:
*
* @return Vector of nodes in reverse order.
*/
- std::vector<s32> GetSortedResuls() const;
+ std::pair<std::span<u32>::reverse_iterator, size_t> GetSortedResuls() const;
private:
/// Number of nodes in the graph
diff --git a/src/audio_core/renderer/system.cpp b/src/audio_core/renderer/system.cpp
index 53b258c4f..a23627472 100644
--- a/src/audio_core/renderer/system.cpp
+++ b/src/audio_core/renderer/system.cpp
@@ -444,6 +444,7 @@ Result System::Update(std::span<const u8> input, std::span<u8> performance, std:
std::scoped_lock l{lock};
const auto start_time{core.CoreTiming().GetClockTicks()};
+ std::memset(output.data(), 0, output.size());
InfoUpdater info_updater(input, output, process_handle, behavior);
diff --git a/src/audio_core/sink/null_sink.h b/src/audio_core/sink/null_sink.h
index 1215d3cd2..b6b43c93e 100644
--- a/src/audio_core/sink/null_sink.h
+++ b/src/audio_core/sink/null_sink.h
@@ -20,7 +20,7 @@ public:
explicit NullSinkStreamImpl(Core::System& system_, StreamType type_)
: SinkStream{system_, type_} {}
~NullSinkStreamImpl() override {}
- void AppendBuffer(SinkBuffer&, std::vector<s16>&) override {}
+ void AppendBuffer(SinkBuffer&, std::span<s16>) override {}
std::vector<s16> ReleaseBuffer(u64) override {
return {};
}
diff --git a/src/audio_core/sink/sink_stream.cpp b/src/audio_core/sink/sink_stream.cpp
index f44fedfd5..404dcd0e9 100644
--- a/src/audio_core/sink/sink_stream.cpp
+++ b/src/audio_core/sink/sink_stream.cpp
@@ -15,11 +15,10 @@
#include "common/settings.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
namespace AudioCore::Sink {
-void SinkStream::AppendBuffer(SinkBuffer& buffer, std::vector<s16>& samples) {
+void SinkStream::AppendBuffer(SinkBuffer& buffer, std::span<s16> samples) {
if (type == StreamType::In) {
queue.enqueue(buffer);
queued_buffers++;
@@ -67,15 +66,16 @@ void SinkStream::AppendBuffer(SinkBuffer& buffer, std::vector<s16>& samples) {
static_cast<s16>(std::clamp(right_sample, min, max));
}
- samples.resize(samples.size() / system_channels * device_channels);
+ samples = samples.subspan(0, samples.size() / system_channels * device_channels);
} else if (system_channels == 2 && device_channels == 6) {
// We need moar samples! Not all games will provide 6 channel audio.
// TODO: Implement some upmixing here. Currently just passthrough, with other
// channels left as silence.
- std::vector<s16> new_samples(samples.size() / system_channels * device_channels, 0);
+ auto new_size = samples.size() / system_channels * device_channels;
+ tmp_samples.resize_destructive(new_size);
- for (u32 read_index = 0, write_index = 0; read_index < samples.size();
+ for (u32 read_index = 0, write_index = 0; read_index < new_size;
read_index += system_channels, write_index += device_channels) {
const auto left_sample{static_cast<s16>(std::clamp(
static_cast<s32>(
@@ -83,7 +83,7 @@ void SinkStream::AppendBuffer(SinkBuffer& buffer, std::vector<s16>& samples) {
volume),
min, max))};
- new_samples[write_index + static_cast<u32>(Channels::FrontLeft)] = left_sample;
+ tmp_samples[write_index + static_cast<u32>(Channels::FrontLeft)] = left_sample;
const auto right_sample{static_cast<s16>(std::clamp(
static_cast<s32>(
@@ -91,9 +91,9 @@ void SinkStream::AppendBuffer(SinkBuffer& buffer, std::vector<s16>& samples) {
volume),
min, max))};
- new_samples[write_index + static_cast<u32>(Channels::FrontRight)] = right_sample;
+ tmp_samples[write_index + static_cast<u32>(Channels::FrontRight)] = right_sample;
}
- samples = std::move(new_samples);
+ samples = std::span<s16>(tmp_samples);
} else if (volume != 1.0f) {
for (u32 i = 0; i < samples.size(); i++) {
diff --git a/src/audio_core/sink/sink_stream.h b/src/audio_core/sink/sink_stream.h
index 41cbadc9c..98d72ace1 100644
--- a/src/audio_core/sink/sink_stream.h
+++ b/src/audio_core/sink/sink_stream.h
@@ -16,6 +16,7 @@
#include "common/polyfill_thread.h"
#include "common/reader_writer_queue.h"
#include "common/ring_buffer.h"
+#include "common/scratch_buffer.h"
#include "common/thread.h"
namespace Core {
@@ -170,7 +171,7 @@ public:
* @param buffer - Audio buffer information to be queued.
* @param samples - The s16 samples to be queue for playback.
*/
- virtual void AppendBuffer(SinkBuffer& buffer, std::vector<s16>& samples);
+ virtual void AppendBuffer(SinkBuffer& buffer, std::span<s16> samples);
/**
* Release a buffer. Audio In only, will fill a buffer with recorded samples.
@@ -255,6 +256,8 @@ private:
/// Signalled when ring buffer entries are consumed
std::condition_variable_any release_cv;
std::mutex release_mutex;
+ /// Temporary buffer for appending samples when upmixing
+ Common::ScratchBuffer<s16> tmp_samples{};
};
using SinkStreamPtr = std::unique_ptr<SinkStream>;
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index efc4a9fe9..3adf13a3f 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -172,6 +172,8 @@ if(ARCHITECTURE_x86_64)
x64/cpu_wait.h
x64/native_clock.cpp
x64/native_clock.h
+ x64/rdtsc.cpp
+ x64/rdtsc.h
x64/xbyak_abi.h
x64/xbyak_util.h
)
diff --git a/src/common/fs/fs.cpp b/src/common/fs/fs.cpp
index 6d66c926d..36e67c145 100644
--- a/src/common/fs/fs.cpp
+++ b/src/common/fs/fs.cpp
@@ -436,7 +436,7 @@ void IterateDirEntries(const std::filesystem::path& path, const DirEntryCallable
if (True(filter & DirEntryFilter::File) &&
entry.status().type() == fs::file_type::regular) {
- if (!callback(entry.path())) {
+ if (!callback(entry)) {
callback_error = true;
break;
}
@@ -444,7 +444,7 @@ void IterateDirEntries(const std::filesystem::path& path, const DirEntryCallable
if (True(filter & DirEntryFilter::Directory) &&
entry.status().type() == fs::file_type::directory) {
- if (!callback(entry.path())) {
+ if (!callback(entry)) {
callback_error = true;
break;
}
@@ -493,7 +493,7 @@ void IterateDirEntriesRecursively(const std::filesystem::path& path,
if (True(filter & DirEntryFilter::File) &&
entry.status().type() == fs::file_type::regular) {
- if (!callback(entry.path())) {
+ if (!callback(entry)) {
callback_error = true;
break;
}
@@ -501,7 +501,7 @@ void IterateDirEntriesRecursively(const std::filesystem::path& path,
if (True(filter & DirEntryFilter::Directory) &&
entry.status().type() == fs::file_type::directory) {
- if (!callback(entry.path())) {
+ if (!callback(entry)) {
callback_error = true;
break;
}
@@ -605,6 +605,12 @@ fs::file_type GetEntryType(const fs::path& path) {
}
u64 GetSize(const fs::path& path) {
+#ifdef ANDROID
+ if (Android::IsContentUri(path)) {
+ return Android::GetSize(path);
+ }
+#endif
+
std::error_code ec;
const auto file_size = fs::file_size(path, ec);
diff --git a/src/common/fs/fs_types.h b/src/common/fs/fs_types.h
index 5a4090c19..900f85d24 100644
--- a/src/common/fs/fs_types.h
+++ b/src/common/fs/fs_types.h
@@ -66,6 +66,6 @@ DECLARE_ENUM_FLAG_OPERATORS(DirEntryFilter);
* @returns A boolean value.
* Return true to indicate whether the callback is successful, false otherwise.
*/
-using DirEntryCallable = std::function<bool(const std::filesystem::path& path)>;
+using DirEntryCallable = std::function<bool(const std::filesystem::directory_entry& entry)>;
} // namespace Common::FS
diff --git a/src/common/input.h b/src/common/input.h
index 66fb15f0a..2c4ccea22 100644
--- a/src/common/input.h
+++ b/src/common/input.h
@@ -75,8 +75,10 @@ enum class DriverResult {
ErrorWritingData,
NoDeviceDetected,
InvalidHandle,
+ InvalidParameters,
NotSupported,
Disabled,
+ Delayed,
Unknown,
};
@@ -86,7 +88,7 @@ enum class NfcState {
NewAmiibo,
WaitingForAmiibo,
AmiiboRemoved,
- NotAnAmiibo,
+ InvalidTagType,
NotSupported,
WrongDeviceState,
WriteFailed,
@@ -218,8 +220,22 @@ struct CameraStatus {
};
struct NfcStatus {
- NfcState state{};
- std::vector<u8> data{};
+ NfcState state{NfcState::Unknown};
+ u8 uuid_length;
+ u8 protocol;
+ u8 tag_type;
+ std::array<u8, 10> uuid;
+};
+
+struct MifareData {
+ u8 command;
+ u8 sector;
+ std::array<u8, 0x6> key;
+ std::array<u8, 0x10> data;
+};
+
+struct MifareRequest {
+ std::array<MifareData, 0x10> data;
};
// List of buttons to be passed to Qt that can be translated
@@ -294,7 +310,7 @@ struct CallbackStatus {
BatteryStatus battery_status{};
VibrationStatus vibration_status{};
CameraFormat camera_status{CameraFormat::None};
- NfcState nfc_status{NfcState::Unknown};
+ NfcStatus nfc_status{};
std::vector<u8> raw_data{};
};
@@ -356,9 +372,30 @@ public:
return NfcState::NotSupported;
}
+ virtual NfcState StartNfcPolling() {
+ return NfcState::NotSupported;
+ }
+
+ virtual NfcState StopNfcPolling() {
+ return NfcState::NotSupported;
+ }
+
+ virtual NfcState ReadAmiiboData([[maybe_unused]] std::vector<u8>& out_data) {
+ return NfcState::NotSupported;
+ }
+
virtual NfcState WriteNfcData([[maybe_unused]] const std::vector<u8>& data) {
return NfcState::NotSupported;
}
+
+ virtual NfcState ReadMifareData([[maybe_unused]] const MifareRequest& request,
+ [[maybe_unused]] MifareRequest& out_data) {
+ return NfcState::NotSupported;
+ }
+
+ virtual NfcState WriteMifareData([[maybe_unused]] const MifareRequest& request) {
+ return NfcState::NotSupported;
+ }
};
/// An abstract class template for a factory that can create input devices.
diff --git a/src/common/ring_buffer.h b/src/common/ring_buffer.h
index 4c328ab44..416680d44 100644
--- a/src/common/ring_buffer.h
+++ b/src/common/ring_buffer.h
@@ -9,6 +9,7 @@
#include <cstddef>
#include <cstring>
#include <new>
+#include <span>
#include <type_traits>
#include <vector>
@@ -53,7 +54,7 @@ public:
return push_count;
}
- std::size_t Push(const std::vector<T>& input) {
+ std::size_t Push(const std::span<T> input) {
return Push(input.data(), input.size());
}
diff --git a/src/common/scratch_buffer.h b/src/common/scratch_buffer.h
index a69a5a7af..6fe907953 100644
--- a/src/common/scratch_buffer.h
+++ b/src/common/scratch_buffer.h
@@ -3,6 +3,9 @@
#pragma once
+#include <iterator>
+
+#include "common/concepts.h"
#include "common/make_unique_for_overwrite.h"
namespace Common {
@@ -16,6 +19,12 @@ namespace Common {
template <typename T>
class ScratchBuffer {
public:
+ using iterator = T*;
+ using const_iterator = const T*;
+ using value_type = T;
+ using element_type = T;
+ using iterator_category = std::contiguous_iterator_tag;
+
ScratchBuffer() = default;
explicit ScratchBuffer(size_t initial_capacity)
diff --git a/src/common/settings.cpp b/src/common/settings.cpp
index 66dffc9bf..6cbbea1b2 100644
--- a/src/common/settings.cpp
+++ b/src/common/settings.cpp
@@ -1,8 +1,11 @@
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include <version>
#if __cpp_lib_chrono >= 201907L
#include <chrono>
+#include <exception>
+#include <stdexcept>
#endif
#include <string_view>
@@ -25,9 +28,19 @@ std::string GetTimeZoneString() {
if (time_zone_index == 0) { // Auto
#if __cpp_lib_chrono >= 201907L
const struct std::chrono::tzdb& time_zone_data = std::chrono::get_tzdb();
- const std::chrono::time_zone* current_zone = time_zone_data.current_zone();
- std::string_view current_zone_name = current_zone->name();
- location_name = current_zone_name;
+ try {
+ const std::chrono::time_zone* current_zone = time_zone_data.current_zone();
+ std::string_view current_zone_name = current_zone->name();
+ location_name = current_zone_name;
+ } catch (std::runtime_error& runtime_error) {
+ // VCRUNTIME will throw a runtime_error if the operating system's selected time zone
+ // cannot be found
+ location_name = Common::TimeZone::FindSystemTimeZone();
+ LOG_WARNING(Common,
+ "Error occurred when trying to determine system time zone:\n{}\nFalling "
+ "back to hour offset \"{}\"",
+ runtime_error.what(), location_name);
+ }
#else
location_name = Common::TimeZone::FindSystemTimeZone();
#endif
diff --git a/src/common/settings.h b/src/common/settings.h
index 9682281b0..ae5ed93d8 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -483,6 +483,7 @@ struct Values {
AstcRecompression::Uncompressed, AstcRecompression::Uncompressed, AstcRecompression::Bc3,
"astc_recompression"};
SwitchableSetting<bool> use_video_framerate{false, "use_video_framerate"};
+ SwitchableSetting<bool> barrier_feedback_loops{true, "barrier_feedback_loops"};
SwitchableSetting<u8> bg_red{0, "bg_red"};
SwitchableSetting<u8> bg_green{0, "bg_green"};
@@ -524,9 +525,16 @@ struct Values {
Setting<bool> tas_loop{false, "tas_loop"};
Setting<bool> mouse_panning{false, "mouse_panning"};
- Setting<u8, true> mouse_panning_sensitivity{50, 1, 100, "mouse_panning_sensitivity"};
- Setting<bool> mouse_enabled{false, "mouse_enabled"};
+ Setting<u8, true> mouse_panning_x_sensitivity{50, 1, 100, "mouse_panning_x_sensitivity"};
+ Setting<u8, true> mouse_panning_y_sensitivity{50, 1, 100, "mouse_panning_y_sensitivity"};
+ Setting<u8, true> mouse_panning_deadzone_x_counterweight{
+ 0, 0, 100, "mouse_panning_deadzone_x_counterweight"};
+ Setting<u8, true> mouse_panning_deadzone_y_counterweight{
+ 0, 0, 100, "mouse_panning_deadzone_y_counterweight"};
+ Setting<u8, true> mouse_panning_decay_strength{22, 0, 100, "mouse_panning_decay_strength"};
+ Setting<u8, true> mouse_panning_min_decay{5, 0, 100, "mouse_panning_min_decay"};
+ Setting<bool> mouse_enabled{false, "mouse_enabled"};
Setting<bool> emulate_analog_keyboard{false, "emulate_analog_keyboard"};
Setting<bool> keyboard_enabled{false, "keyboard_enabled"};
diff --git a/src/common/steady_clock.cpp b/src/common/steady_clock.cpp
index 782859196..9415eed29 100644
--- a/src/common/steady_clock.cpp
+++ b/src/common/steady_clock.cpp
@@ -28,13 +28,12 @@ static s64 GetSystemTimeNS() {
// GetSystemTimePreciseAsFileTime returns the file time in 100ns units.
static constexpr s64 Multiplier = 100;
// Convert Windows epoch to Unix epoch.
- static constexpr s64 WindowsEpochToUnixEpochNS = 0x19DB1DED53E8000LL;
+ static constexpr s64 WindowsEpochToUnixEpoch = 0x19DB1DED53E8000LL;
FILETIME filetime;
GetSystemTimePreciseAsFileTime(&filetime);
return Multiplier * ((static_cast<s64>(filetime.dwHighDateTime) << 32) +
- static_cast<s64>(filetime.dwLowDateTime)) -
- WindowsEpochToUnixEpochNS;
+ static_cast<s64>(filetime.dwLowDateTime) - WindowsEpochToUnixEpoch);
}
#endif
diff --git a/src/common/telemetry.cpp b/src/common/telemetry.cpp
index 91352912d..929ed67e4 100644
--- a/src/common/telemetry.cpp
+++ b/src/common/telemetry.cpp
@@ -93,6 +93,7 @@ void AppendCPUInfo(FieldCollection& fc) {
add_field("CPU_Extension_x64_GFNI", caps.gfni);
add_field("CPU_Extension_x64_INVARIANT_TSC", caps.invariant_tsc);
add_field("CPU_Extension_x64_LZCNT", caps.lzcnt);
+ add_field("CPU_Extension_x64_MONITORX", caps.monitorx);
add_field("CPU_Extension_x64_MOVBE", caps.movbe);
add_field("CPU_Extension_x64_PCLMULQDQ", caps.pclmulqdq);
add_field("CPU_Extension_x64_POPCNT", caps.popcnt);
diff --git a/src/common/thread.h b/src/common/thread.h
index 8ae169b4e..c6976fb6c 100644
--- a/src/common/thread.h
+++ b/src/common/thread.h
@@ -55,7 +55,7 @@ public:
is_set = false;
}
- [[nodiscard]] bool IsSet() {
+ [[nodiscard]] bool IsSet() const {
return is_set;
}
diff --git a/src/common/wall_clock.cpp b/src/common/wall_clock.cpp
index 817e71d52..dc0dcbd68 100644
--- a/src/common/wall_clock.cpp
+++ b/src/common/wall_clock.cpp
@@ -2,88 +2,75 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/steady_clock.h"
-#include "common/uint128.h"
#include "common/wall_clock.h"
#ifdef ARCHITECTURE_x86_64
#include "common/x64/cpu_detect.h"
#include "common/x64/native_clock.h"
+#include "common/x64/rdtsc.h"
#endif
namespace Common {
class StandardWallClock final : public WallClock {
public:
- explicit StandardWallClock(u64 emulated_cpu_frequency_, u64 emulated_clock_frequency_)
- : WallClock{emulated_cpu_frequency_, emulated_clock_frequency_, false},
- start_time{SteadyClock::Now()} {}
+ explicit StandardWallClock() : start_time{SteadyClock::Now()} {}
- std::chrono::nanoseconds GetTimeNS() override {
+ std::chrono::nanoseconds GetTimeNS() const override {
return SteadyClock::Now() - start_time;
}
- std::chrono::microseconds GetTimeUS() override {
- return std::chrono::duration_cast<std::chrono::microseconds>(GetTimeNS());
+ std::chrono::microseconds GetTimeUS() const override {
+ return static_cast<std::chrono::microseconds>(GetHostTicksElapsed() / NsToUsRatio::den);
}
- std::chrono::milliseconds GetTimeMS() override {
- return std::chrono::duration_cast<std::chrono::milliseconds>(GetTimeNS());
+ std::chrono::milliseconds GetTimeMS() const override {
+ return static_cast<std::chrono::milliseconds>(GetHostTicksElapsed() / NsToMsRatio::den);
}
- u64 GetClockCycles() override {
- const u128 temp = Common::Multiply64Into128(GetTimeNS().count(), emulated_clock_frequency);
- return Common::Divide128On32(temp, NS_RATIO).first;
+ u64 GetCNTPCT() const override {
+ return GetHostTicksElapsed() * NsToCNTPCTRatio::num / NsToCNTPCTRatio::den;
}
- u64 GetCPUCycles() override {
- const u128 temp = Common::Multiply64Into128(GetTimeNS().count(), emulated_cpu_frequency);
- return Common::Divide128On32(temp, NS_RATIO).first;
+ u64 GetGPUTick() const override {
+ return GetHostTicksElapsed() * NsToGPUTickRatio::num / NsToGPUTickRatio::den;
}
- void Pause([[maybe_unused]] bool is_paused) override {
- // Do nothing in this clock type.
+ u64 GetHostTicksNow() const override {
+ return static_cast<u64>(SteadyClock::Now().time_since_epoch().count());
+ }
+
+ u64 GetHostTicksElapsed() const override {
+ return static_cast<u64>(GetTimeNS().count());
+ }
+
+ bool IsNative() const override {
+ return false;
}
private:
SteadyClock::time_point start_time;
};
+std::unique_ptr<WallClock> CreateOptimalClock() {
#ifdef ARCHITECTURE_x86_64
-
-std::unique_ptr<WallClock> CreateBestMatchingClock(u64 emulated_cpu_frequency,
- u64 emulated_clock_frequency) {
const auto& caps = GetCPUCaps();
- u64 rtsc_frequency = 0;
- if (caps.invariant_tsc) {
- rtsc_frequency = caps.tsc_frequency ? caps.tsc_frequency : EstimateRDTSCFrequency();
- }
- // Fallback to StandardWallClock if the hardware TSC does not have the precision greater than:
- // - A nanosecond
- // - The emulated CPU frequency
- // - The emulated clock counter frequency (CNTFRQ)
- if (rtsc_frequency <= WallClock::NS_RATIO || rtsc_frequency <= emulated_cpu_frequency ||
- rtsc_frequency <= emulated_clock_frequency) {
- return std::make_unique<StandardWallClock>(emulated_cpu_frequency,
- emulated_clock_frequency);
+ if (caps.invariant_tsc && caps.tsc_frequency >= WallClock::GPUTickFreq) {
+ return std::make_unique<X64::NativeClock>(caps.tsc_frequency);
} else {
- return std::make_unique<X64::NativeClock>(emulated_cpu_frequency, emulated_clock_frequency,
- rtsc_frequency);
+ // Fallback to StandardWallClock if the hardware TSC
+ // - Is not invariant
+ // - Is not more precise than GPUTickFreq
+ return std::make_unique<StandardWallClock>();
}
-}
-
#else
-
-std::unique_ptr<WallClock> CreateBestMatchingClock(u64 emulated_cpu_frequency,
- u64 emulated_clock_frequency) {
- return std::make_unique<StandardWallClock>(emulated_cpu_frequency, emulated_clock_frequency);
-}
-
+ return std::make_unique<StandardWallClock>();
#endif
+}
-std::unique_ptr<WallClock> CreateStandardWallClock(u64 emulated_cpu_frequency,
- u64 emulated_clock_frequency) {
- return std::make_unique<StandardWallClock>(emulated_cpu_frequency, emulated_clock_frequency);
+std::unique_ptr<WallClock> CreateStandardWallClock() {
+ return std::make_unique<StandardWallClock>();
}
} // namespace Common
diff --git a/src/common/wall_clock.h b/src/common/wall_clock.h
index 157ec5eae..f45d3d8c5 100644
--- a/src/common/wall_clock.h
+++ b/src/common/wall_clock.h
@@ -5,6 +5,7 @@
#include <chrono>
#include <memory>
+#include <ratio>
#include "common/common_types.h"
@@ -12,50 +13,82 @@ namespace Common {
class WallClock {
public:
- static constexpr u64 NS_RATIO = 1'000'000'000;
- static constexpr u64 US_RATIO = 1'000'000;
- static constexpr u64 MS_RATIO = 1'000;
+ static constexpr u64 CNTFRQ = 19'200'000; // CNTPCT_EL0 Frequency = 19.2 MHz
+ static constexpr u64 GPUTickFreq = 614'400'000; // GM20B GPU Tick Frequency = 614.4 MHz
+ static constexpr u64 CPUTickFreq = 1'020'000'000; // T210/4 A57 CPU Tick Frequency = 1020.0 MHz
virtual ~WallClock() = default;
- /// Returns current wall time in nanoseconds
- [[nodiscard]] virtual std::chrono::nanoseconds GetTimeNS() = 0;
+ /// @returns The time in nanoseconds since the construction of this clock.
+ virtual std::chrono::nanoseconds GetTimeNS() const = 0;
- /// Returns current wall time in microseconds
- [[nodiscard]] virtual std::chrono::microseconds GetTimeUS() = 0;
+ /// @returns The time in microseconds since the construction of this clock.
+ virtual std::chrono::microseconds GetTimeUS() const = 0;
- /// Returns current wall time in milliseconds
- [[nodiscard]] virtual std::chrono::milliseconds GetTimeMS() = 0;
+ /// @returns The time in milliseconds since the construction of this clock.
+ virtual std::chrono::milliseconds GetTimeMS() const = 0;
- /// Returns current wall time in emulated clock cycles
- [[nodiscard]] virtual u64 GetClockCycles() = 0;
+ /// @returns The guest CNTPCT ticks since the construction of this clock.
+ virtual u64 GetCNTPCT() const = 0;
- /// Returns current wall time in emulated cpu cycles
- [[nodiscard]] virtual u64 GetCPUCycles() = 0;
+ /// @returns The guest GPU ticks since the construction of this clock.
+ virtual u64 GetGPUTick() const = 0;
- virtual void Pause(bool is_paused) = 0;
+ /// @returns The raw host timer ticks since an indeterminate epoch.
+ virtual u64 GetHostTicksNow() const = 0;
- /// Tells if the wall clock, uses the host CPU's hardware clock
- [[nodiscard]] bool IsNative() const {
- return is_native;
+ /// @returns The raw host timer ticks since the construction of this clock.
+ virtual u64 GetHostTicksElapsed() const = 0;
+
+ /// @returns Whether the clock directly uses the host's hardware clock.
+ virtual bool IsNative() const = 0;
+
+ static inline u64 NSToCNTPCT(u64 ns) {
+ return ns * NsToCNTPCTRatio::num / NsToCNTPCTRatio::den;
+ }
+
+ static inline u64 NSToGPUTick(u64 ns) {
+ return ns * NsToGPUTickRatio::num / NsToGPUTickRatio::den;
+ }
+
+ // Cycle Timing
+
+ static inline u64 CPUTickToNS(u64 cpu_tick) {
+ return cpu_tick * CPUTickToNsRatio::num / CPUTickToNsRatio::den;
+ }
+
+ static inline u64 CPUTickToUS(u64 cpu_tick) {
+ return cpu_tick * CPUTickToUsRatio::num / CPUTickToUsRatio::den;
+ }
+
+ static inline u64 CPUTickToCNTPCT(u64 cpu_tick) {
+ return cpu_tick * CPUTickToCNTPCTRatio::num / CPUTickToCNTPCTRatio::den;
+ }
+
+ static inline u64 CPUTickToGPUTick(u64 cpu_tick) {
+ return cpu_tick * CPUTickToGPUTickRatio::num / CPUTickToGPUTickRatio::den;
}
protected:
- explicit WallClock(u64 emulated_cpu_frequency_, u64 emulated_clock_frequency_, bool is_native_)
- : emulated_cpu_frequency{emulated_cpu_frequency_},
- emulated_clock_frequency{emulated_clock_frequency_}, is_native{is_native_} {}
+ using NsRatio = std::nano;
+ using UsRatio = std::micro;
+ using MsRatio = std::milli;
+
+ using NsToUsRatio = std::ratio_divide<std::nano, std::micro>;
+ using NsToMsRatio = std::ratio_divide<std::nano, std::milli>;
+ using NsToCNTPCTRatio = std::ratio<CNTFRQ, std::nano::den>;
+ using NsToGPUTickRatio = std::ratio<GPUTickFreq, std::nano::den>;
- u64 emulated_cpu_frequency;
- u64 emulated_clock_frequency;
+ // Cycle Timing
-private:
- bool is_native;
+ using CPUTickToNsRatio = std::ratio<std::nano::den, CPUTickFreq>;
+ using CPUTickToUsRatio = std::ratio<std::micro::den, CPUTickFreq>;
+ using CPUTickToCNTPCTRatio = std::ratio<CNTFRQ, CPUTickFreq>;
+ using CPUTickToGPUTickRatio = std::ratio<GPUTickFreq, CPUTickFreq>;
};
-[[nodiscard]] std::unique_ptr<WallClock> CreateBestMatchingClock(u64 emulated_cpu_frequency,
- u64 emulated_clock_frequency);
+std::unique_ptr<WallClock> CreateOptimalClock();
-[[nodiscard]] std::unique_ptr<WallClock> CreateStandardWallClock(u64 emulated_cpu_frequency,
- u64 emulated_clock_frequency);
+std::unique_ptr<WallClock> CreateStandardWallClock();
} // namespace Common
diff --git a/src/common/x64/cpu_detect.cpp b/src/common/x64/cpu_detect.cpp
index 72ed6e96c..780120a5b 100644
--- a/src/common/x64/cpu_detect.cpp
+++ b/src/common/x64/cpu_detect.cpp
@@ -14,6 +14,7 @@
#include "common/common_types.h"
#include "common/logging/log.h"
#include "common/x64/cpu_detect.h"
+#include "common/x64/rdtsc.h"
#ifdef _WIN32
#include <windows.h>
@@ -167,6 +168,7 @@ static CPUCaps Detect() {
__cpuid(cpu_id, 0x80000001);
caps.lzcnt = Common::Bit<5>(cpu_id[2]);
caps.fma4 = Common::Bit<16>(cpu_id[2]);
+ caps.monitorx = Common::Bit<29>(cpu_id[2]);
}
if (max_ex_fn >= 0x80000007) {
@@ -187,6 +189,8 @@ static CPUCaps Detect() {
caps.tsc_frequency = static_cast<u64>(caps.crystal_frequency) *
caps.tsc_crystal_ratio_numerator /
caps.tsc_crystal_ratio_denominator;
+ } else {
+ caps.tsc_frequency = X64::EstimateRDTSCFrequency();
}
}
diff --git a/src/common/x64/cpu_detect.h b/src/common/x64/cpu_detect.h
index 8253944d6..756459417 100644
--- a/src/common/x64/cpu_detect.h
+++ b/src/common/x64/cpu_detect.h
@@ -63,6 +63,7 @@ struct CPUCaps {
bool gfni : 1;
bool invariant_tsc : 1;
bool lzcnt : 1;
+ bool monitorx : 1;
bool movbe : 1;
bool pclmulqdq : 1;
bool popcnt : 1;
diff --git a/src/common/x64/cpu_wait.cpp b/src/common/x64/cpu_wait.cpp
index cfeef6a3d..41d385f59 100644
--- a/src/common/x64/cpu_wait.cpp
+++ b/src/common/x64/cpu_wait.cpp
@@ -9,58 +9,64 @@
#include "common/x64/cpu_detect.h"
#include "common/x64/cpu_wait.h"
+#include "common/x64/rdtsc.h"
namespace Common::X64 {
+namespace {
+
+// 100,000 cycles is a reasonable amount of time to wait to save on CPU resources.
+// For reference:
+// At 1 GHz, 100K cycles is 100us
+// At 2 GHz, 100K cycles is 50us
+// At 4 GHz, 100K cycles is 25us
+constexpr auto PauseCycles = 100'000U;
+
+} // Anonymous namespace
+
#ifdef _MSC_VER
-__forceinline static u64 FencedRDTSC() {
- _mm_lfence();
- _ReadWriteBarrier();
- const u64 result = __rdtsc();
- _mm_lfence();
- _ReadWriteBarrier();
- return result;
+__forceinline static void TPAUSE() {
+ static constexpr auto RequestC02State = 0U;
+ _tpause(RequestC02State, FencedRDTSC() + PauseCycles);
}
-__forceinline static void TPAUSE() {
- // 100,000 cycles is a reasonable amount of time to wait to save on CPU resources.
- // For reference:
- // At 1 GHz, 100K cycles is 100us
- // At 2 GHz, 100K cycles is 50us
- // At 4 GHz, 100K cycles is 25us
- static constexpr auto PauseCycles = 100'000;
- _tpause(0, FencedRDTSC() + PauseCycles);
+__forceinline static void MWAITX() {
+ static constexpr auto EnableWaitTimeFlag = 1U << 1;
+ static constexpr auto RequestC1State = 0U;
+
+ // monitor_var should be aligned to a cache line.
+ alignas(64) u64 monitor_var{};
+ _mm_monitorx(&monitor_var, 0, 0);
+ _mm_mwaitx(EnableWaitTimeFlag, RequestC1State, PauseCycles);
}
#else
-static u64 FencedRDTSC() {
- u64 eax;
- u64 edx;
- asm volatile("lfence\n\t"
- "rdtsc\n\t"
- "lfence\n\t"
- : "=a"(eax), "=d"(edx));
- return (edx << 32) | eax;
-}
-
static void TPAUSE() {
- // 100,000 cycles is a reasonable amount of time to wait to save on CPU resources.
- // For reference:
- // At 1 GHz, 100K cycles is 100us
- // At 2 GHz, 100K cycles is 50us
- // At 4 GHz, 100K cycles is 25us
- static constexpr auto PauseCycles = 100'000;
+ static constexpr auto RequestC02State = 0U;
const auto tsc = FencedRDTSC() + PauseCycles;
const auto eax = static_cast<u32>(tsc & 0xFFFFFFFF);
const auto edx = static_cast<u32>(tsc >> 32);
- asm volatile("tpause %0" : : "r"(0), "d"(edx), "a"(eax));
+ asm volatile("tpause %0" : : "r"(RequestC02State), "d"(edx), "a"(eax));
+}
+
+static void MWAITX() {
+ static constexpr auto EnableWaitTimeFlag = 1U << 1;
+ static constexpr auto RequestC1State = 0U;
+
+ // monitor_var should be aligned to a cache line.
+ alignas(64) u64 monitor_var{};
+ asm volatile("monitorx" : : "a"(&monitor_var), "c"(0), "d"(0));
+ asm volatile("mwaitx" : : "a"(RequestC1State), "b"(PauseCycles), "c"(EnableWaitTimeFlag));
}
#endif
void MicroSleep() {
static const bool has_waitpkg = GetCPUCaps().waitpkg;
+ static const bool has_monitorx = GetCPUCaps().monitorx;
if (has_waitpkg) {
TPAUSE();
+ } else if (has_monitorx) {
+ MWAITX();
} else {
std::this_thread::yield();
}
diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp
index 277b00662..7d2a26bd9 100644
--- a/src/common/x64/native_clock.cpp
+++ b/src/common/x64/native_clock.cpp
@@ -1,164 +1,50 @@
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include <array>
-#include <chrono>
-#include <thread>
-
-#include "common/atomic_ops.h"
-#include "common/steady_clock.h"
#include "common/uint128.h"
#include "common/x64/native_clock.h"
+#include "common/x64/rdtsc.h"
-#ifdef _MSC_VER
-#include <intrin.h>
-#endif
-
-namespace Common {
+namespace Common::X64 {
-#ifdef _MSC_VER
-__forceinline static u64 FencedRDTSC() {
- _mm_lfence();
- _ReadWriteBarrier();
- const u64 result = __rdtsc();
- _mm_lfence();
- _ReadWriteBarrier();
- return result;
-}
-#else
-static u64 FencedRDTSC() {
- u64 eax;
- u64 edx;
- asm volatile("lfence\n\t"
- "rdtsc\n\t"
- "lfence\n\t"
- : "=a"(eax), "=d"(edx));
- return (edx << 32) | eax;
-}
-#endif
+NativeClock::NativeClock(u64 rdtsc_frequency_)
+ : start_ticks{FencedRDTSC()}, rdtsc_frequency{rdtsc_frequency_},
+ ns_rdtsc_factor{GetFixedPoint64Factor(NsRatio::den, rdtsc_frequency)},
+ us_rdtsc_factor{GetFixedPoint64Factor(UsRatio::den, rdtsc_frequency)},
+ ms_rdtsc_factor{GetFixedPoint64Factor(MsRatio::den, rdtsc_frequency)},
+ cntpct_rdtsc_factor{GetFixedPoint64Factor(CNTFRQ, rdtsc_frequency)},
+ gputick_rdtsc_factor{GetFixedPoint64Factor(GPUTickFreq, rdtsc_frequency)} {}
-template <u64 Nearest>
-static u64 RoundToNearest(u64 value) {
- const auto mod = value % Nearest;
- return mod >= (Nearest / 2) ? (value - mod + Nearest) : (value - mod);
+std::chrono::nanoseconds NativeClock::GetTimeNS() const {
+ return std::chrono::nanoseconds{MultiplyHigh(GetHostTicksElapsed(), ns_rdtsc_factor)};
}
-u64 EstimateRDTSCFrequency() {
- // Discard the first result measuring the rdtsc.
- FencedRDTSC();
- std::this_thread::sleep_for(std::chrono::milliseconds{1});
- FencedRDTSC();
-
- // Get the current time.
- const auto start_time = Common::RealTimeClock::Now();
- const u64 tsc_start = FencedRDTSC();
- // Wait for 250 milliseconds.
- std::this_thread::sleep_for(std::chrono::milliseconds{250});
- const auto end_time = Common::RealTimeClock::Now();
- const u64 tsc_end = FencedRDTSC();
- // Calculate differences.
- const u64 timer_diff = static_cast<u64>(
- std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count());
- const u64 tsc_diff = tsc_end - tsc_start;
- const u64 tsc_freq = MultiplyAndDivide64(tsc_diff, 1000000000ULL, timer_diff);
- return RoundToNearest<1000>(tsc_freq);
+std::chrono::microseconds NativeClock::GetTimeUS() const {
+ return std::chrono::microseconds{MultiplyHigh(GetHostTicksElapsed(), us_rdtsc_factor)};
}
-namespace X64 {
-NativeClock::NativeClock(u64 emulated_cpu_frequency_, u64 emulated_clock_frequency_,
- u64 rtsc_frequency_)
- : WallClock(emulated_cpu_frequency_, emulated_clock_frequency_, true), rtsc_frequency{
- rtsc_frequency_} {
- // Thread to re-adjust the RDTSC frequency after 10 seconds has elapsed.
- time_sync_thread = std::jthread{[this](std::stop_token token) {
- // Get the current time.
- const auto start_time = Common::RealTimeClock::Now();
- const u64 tsc_start = FencedRDTSC();
- // Wait for 10 seconds.
- if (!Common::StoppableTimedWait(token, std::chrono::seconds{10})) {
- return;
- }
- const auto end_time = Common::RealTimeClock::Now();
- const u64 tsc_end = FencedRDTSC();
- // Calculate differences.
- const u64 timer_diff = static_cast<u64>(
- std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count());
- const u64 tsc_diff = tsc_end - tsc_start;
- const u64 tsc_freq = MultiplyAndDivide64(tsc_diff, 1000000000ULL, timer_diff);
- rtsc_frequency = tsc_freq;
- CalculateAndSetFactors();
- }};
-
- time_point.inner.last_measure = FencedRDTSC();
- time_point.inner.accumulated_ticks = 0U;
- CalculateAndSetFactors();
+std::chrono::milliseconds NativeClock::GetTimeMS() const {
+ return std::chrono::milliseconds{MultiplyHigh(GetHostTicksElapsed(), ms_rdtsc_factor)};
}
-u64 NativeClock::GetRTSC() {
- TimePoint new_time_point{};
- TimePoint current_time_point{};
-
- current_time_point.pack = Common::AtomicLoad128(time_point.pack.data());
- do {
- const u64 current_measure = FencedRDTSC();
- u64 diff = current_measure - current_time_point.inner.last_measure;
- diff = diff & ~static_cast<u64>(static_cast<s64>(diff) >> 63); // max(diff, 0)
- new_time_point.inner.last_measure = current_measure > current_time_point.inner.last_measure
- ? current_measure
- : current_time_point.inner.last_measure;
- new_time_point.inner.accumulated_ticks = current_time_point.inner.accumulated_ticks + diff;
- } while (!Common::AtomicCompareAndSwap(time_point.pack.data(), new_time_point.pack,
- current_time_point.pack, current_time_point.pack));
- return new_time_point.inner.accumulated_ticks;
+u64 NativeClock::GetCNTPCT() const {
+ return MultiplyHigh(GetHostTicksElapsed(), cntpct_rdtsc_factor);
}
-void NativeClock::Pause(bool is_paused) {
- if (!is_paused) {
- TimePoint current_time_point{};
- TimePoint new_time_point{};
-
- current_time_point.pack = Common::AtomicLoad128(time_point.pack.data());
- do {
- new_time_point.pack = current_time_point.pack;
- new_time_point.inner.last_measure = FencedRDTSC();
- } while (!Common::AtomicCompareAndSwap(time_point.pack.data(), new_time_point.pack,
- current_time_point.pack, current_time_point.pack));
- }
+u64 NativeClock::GetGPUTick() const {
+ return MultiplyHigh(GetHostTicksElapsed(), gputick_rdtsc_factor);
}
-std::chrono::nanoseconds NativeClock::GetTimeNS() {
- const u64 rtsc_value = GetRTSC();
- return std::chrono::nanoseconds{MultiplyHigh(rtsc_value, ns_rtsc_factor)};
+u64 NativeClock::GetHostTicksNow() const {
+ return FencedRDTSC();
}
-std::chrono::microseconds NativeClock::GetTimeUS() {
- const u64 rtsc_value = GetRTSC();
- return std::chrono::microseconds{MultiplyHigh(rtsc_value, us_rtsc_factor)};
+u64 NativeClock::GetHostTicksElapsed() const {
+ return FencedRDTSC() - start_ticks;
}
-std::chrono::milliseconds NativeClock::GetTimeMS() {
- const u64 rtsc_value = GetRTSC();
- return std::chrono::milliseconds{MultiplyHigh(rtsc_value, ms_rtsc_factor)};
+bool NativeClock::IsNative() const {
+ return true;
}
-u64 NativeClock::GetClockCycles() {
- const u64 rtsc_value = GetRTSC();
- return MultiplyHigh(rtsc_value, clock_rtsc_factor);
-}
-
-u64 NativeClock::GetCPUCycles() {
- const u64 rtsc_value = GetRTSC();
- return MultiplyHigh(rtsc_value, cpu_rtsc_factor);
-}
-
-void NativeClock::CalculateAndSetFactors() {
- ns_rtsc_factor = GetFixedPoint64Factor(NS_RATIO, rtsc_frequency);
- us_rtsc_factor = GetFixedPoint64Factor(US_RATIO, rtsc_frequency);
- ms_rtsc_factor = GetFixedPoint64Factor(MS_RATIO, rtsc_frequency);
- clock_rtsc_factor = GetFixedPoint64Factor(emulated_clock_frequency, rtsc_frequency);
- cpu_rtsc_factor = GetFixedPoint64Factor(emulated_cpu_frequency, rtsc_frequency);
-}
-
-} // namespace X64
-
-} // namespace Common
+} // namespace Common::X64
diff --git a/src/common/x64/native_clock.h b/src/common/x64/native_clock.h
index 03ca291d8..334415eff 100644
--- a/src/common/x64/native_clock.h
+++ b/src/common/x64/native_clock.h
@@ -3,58 +3,39 @@
#pragma once
-#include "common/polyfill_thread.h"
#include "common/wall_clock.h"
-namespace Common {
+namespace Common::X64 {
-namespace X64 {
class NativeClock final : public WallClock {
public:
- explicit NativeClock(u64 emulated_cpu_frequency_, u64 emulated_clock_frequency_,
- u64 rtsc_frequency_);
+ explicit NativeClock(u64 rdtsc_frequency_);
- std::chrono::nanoseconds GetTimeNS() override;
+ std::chrono::nanoseconds GetTimeNS() const override;
- std::chrono::microseconds GetTimeUS() override;
+ std::chrono::microseconds GetTimeUS() const override;
- std::chrono::milliseconds GetTimeMS() override;
+ std::chrono::milliseconds GetTimeMS() const override;
- u64 GetClockCycles() override;
+ u64 GetCNTPCT() const override;
- u64 GetCPUCycles() override;
+ u64 GetGPUTick() const override;
- void Pause(bool is_paused) override;
+ u64 GetHostTicksNow() const override;
-private:
- u64 GetRTSC();
-
- void CalculateAndSetFactors();
-
- union alignas(16) TimePoint {
- TimePoint() : pack{} {}
- u128 pack{};
- struct Inner {
- u64 last_measure{};
- u64 accumulated_ticks{};
- } inner;
- };
-
- TimePoint time_point;
+ u64 GetHostTicksElapsed() const override;
- // factors
- u64 clock_rtsc_factor{};
- u64 cpu_rtsc_factor{};
- u64 ns_rtsc_factor{};
- u64 us_rtsc_factor{};
- u64 ms_rtsc_factor{};
+ bool IsNative() const override;
- u64 rtsc_frequency;
-
- std::jthread time_sync_thread;
+private:
+ u64 start_ticks;
+ u64 rdtsc_frequency;
+
+ u64 ns_rdtsc_factor;
+ u64 us_rdtsc_factor;
+ u64 ms_rdtsc_factor;
+ u64 cntpct_rdtsc_factor;
+ u64 gputick_rdtsc_factor;
};
-} // namespace X64
-
-u64 EstimateRDTSCFrequency();
-} // namespace Common
+} // namespace Common::X64
diff --git a/src/common/x64/rdtsc.cpp b/src/common/x64/rdtsc.cpp
new file mode 100644
index 000000000..9273274a3
--- /dev/null
+++ b/src/common/x64/rdtsc.cpp
@@ -0,0 +1,39 @@
+// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <thread>
+
+#include "common/steady_clock.h"
+#include "common/uint128.h"
+#include "common/x64/rdtsc.h"
+
+namespace Common::X64 {
+
+template <u64 Nearest>
+static u64 RoundToNearest(u64 value) {
+ const auto mod = value % Nearest;
+ return mod >= (Nearest / 2) ? (value - mod + Nearest) : (value - mod);
+}
+
+u64 EstimateRDTSCFrequency() {
+ // Discard the first result measuring the rdtsc.
+ FencedRDTSC();
+ std::this_thread::sleep_for(std::chrono::milliseconds{1});
+ FencedRDTSC();
+
+ // Get the current time.
+ const auto start_time = RealTimeClock::Now();
+ const u64 tsc_start = FencedRDTSC();
+ // Wait for 100 milliseconds.
+ std::this_thread::sleep_for(std::chrono::milliseconds{100});
+ const auto end_time = RealTimeClock::Now();
+ const u64 tsc_end = FencedRDTSC();
+ // Calculate differences.
+ const u64 timer_diff = static_cast<u64>(
+ std::chrono::duration_cast<std::chrono::nanoseconds>(end_time - start_time).count());
+ const u64 tsc_diff = tsc_end - tsc_start;
+ const u64 tsc_freq = MultiplyAndDivide64(tsc_diff, 1000000000ULL, timer_diff);
+ return RoundToNearest<100'000>(tsc_freq);
+}
+
+} // namespace Common::X64
diff --git a/src/common/x64/rdtsc.h b/src/common/x64/rdtsc.h
new file mode 100644
index 000000000..0ec4f52f9
--- /dev/null
+++ b/src/common/x64/rdtsc.h
@@ -0,0 +1,37 @@
+// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#ifdef _MSC_VER
+#include <intrin.h>
+#endif
+
+#include "common/common_types.h"
+
+namespace Common::X64 {
+
+#ifdef _MSC_VER
+__forceinline static u64 FencedRDTSC() {
+ _mm_lfence();
+ _ReadWriteBarrier();
+ const u64 result = __rdtsc();
+ _mm_lfence();
+ _ReadWriteBarrier();
+ return result;
+}
+#else
+static inline u64 FencedRDTSC() {
+ u64 eax;
+ u64 edx;
+ asm volatile("lfence\n\t"
+ "rdtsc\n\t"
+ "lfence\n\t"
+ : "=a"(eax), "=d"(edx));
+ return (edx << 32) | eax;
+}
+#endif
+
+u64 EstimateRDTSCFrequency();
+
+} // namespace Common::X64
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 4c53aed72..dd2c053d0 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -14,7 +14,6 @@ add_library(core STATIC
core.h
core_timing.cpp
core_timing.h
- core_timing_util.h
cpu_manager.cpp
cpu_manager.h
crypto/aes_util.cpp
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index 5acf9008d..3b82fb73c 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -322,11 +322,6 @@ std::shared_ptr<Dynarmic::A32::Jit> ARM_Dynarmic_32::MakeJit(Common::PageTable*
}
}
-#ifdef ARCHITECTURE_arm64
- // TODO: remove when fixed in dynarmic
- config.optimizations &= ~Dynarmic::OptimizationFlag::BlockLinking;
-#endif
-
return std::make_unique<Dynarmic::A32::Jit>(config);
}
diff --git a/src/core/core_timing.cpp b/src/core/core_timing.cpp
index 4f2692b05..4f0a3f8ea 100644
--- a/src/core/core_timing.cpp
+++ b/src/core/core_timing.cpp
@@ -16,12 +16,11 @@
#include "common/microprofile.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
#include "core/hardware_properties.h"
namespace Core::Timing {
-constexpr s64 MAX_SLICE_LENGTH = 4000;
+constexpr s64 MAX_SLICE_LENGTH = 10000;
std::shared_ptr<EventType> CreateEvent(std::string name, TimedCallback&& callback) {
return std::make_shared<EventType>(std::move(callback), std::move(name));
@@ -45,9 +44,7 @@ struct CoreTiming::Event {
}
};
-CoreTiming::CoreTiming()
- : cpu_clock{Common::CreateBestMatchingClock(Hardware::BASE_CLOCK_RATE, Hardware::CNTFREQ)},
- event_clock{Common::CreateStandardWallClock(Hardware::BASE_CLOCK_RATE, Hardware::CNTFREQ)} {}
+CoreTiming::CoreTiming() : clock{Common::CreateOptimalClock()} {}
CoreTiming::~CoreTiming() {
Reset();
@@ -68,7 +65,7 @@ void CoreTiming::Initialize(std::function<void()>&& on_thread_init_) {
on_thread_init = std::move(on_thread_init_);
event_fifo_id = 0;
shutting_down = false;
- ticks = 0;
+ cpu_ticks = 0;
const auto empty_timed_callback = [](std::uintptr_t, u64, std::chrono::nanoseconds)
-> std::optional<std::chrono::nanoseconds> { return std::nullopt; };
ev_lost = CreateEvent("_lost_event", empty_timed_callback);
@@ -173,38 +170,30 @@ void CoreTiming::UnscheduleEvent(const std::shared_ptr<EventType>& event_type,
}
void CoreTiming::AddTicks(u64 ticks_to_add) {
- ticks += ticks_to_add;
- downcount -= static_cast<s64>(ticks);
+ cpu_ticks += ticks_to_add;
+ downcount -= static_cast<s64>(cpu_ticks);
}
void CoreTiming::Idle() {
- if (!event_queue.empty()) {
- const u64 next_event_time = event_queue.front().time;
- const u64 next_ticks = nsToCycles(std::chrono::nanoseconds(next_event_time)) + 10U;
- if (next_ticks > ticks) {
- ticks = next_ticks;
- }
- return;
- }
- ticks += 1000U;
+ cpu_ticks += 1000U;
}
void CoreTiming::ResetTicks() {
downcount = MAX_SLICE_LENGTH;
}
-u64 CoreTiming::GetCPUTicks() const {
+u64 CoreTiming::GetClockTicks() const {
if (is_multicore) [[likely]] {
- return cpu_clock->GetCPUCycles();
+ return clock->GetCNTPCT();
}
- return ticks;
+ return Common::WallClock::CPUTickToCNTPCT(cpu_ticks);
}
-u64 CoreTiming::GetClockTicks() const {
+u64 CoreTiming::GetGPUTicks() const {
if (is_multicore) [[likely]] {
- return cpu_clock->GetClockCycles();
+ return clock->GetGPUTick();
}
- return CpuCyclesToClockCycles(ticks);
+ return Common::WallClock::CPUTickToGPUTick(cpu_ticks);
}
std::optional<s64> CoreTiming::Advance() {
@@ -297,9 +286,7 @@ void CoreTiming::ThreadLoop() {
}
paused_set = true;
- event_clock->Pause(true);
pause_event.Wait();
- event_clock->Pause(false);
}
}
@@ -315,25 +302,18 @@ void CoreTiming::Reset() {
has_started = false;
}
-std::chrono::nanoseconds CoreTiming::GetCPUTimeNs() const {
- if (is_multicore) [[likely]] {
- return cpu_clock->GetTimeNS();
- }
- return CyclesToNs(ticks);
-}
-
std::chrono::nanoseconds CoreTiming::GetGlobalTimeNs() const {
if (is_multicore) [[likely]] {
- return event_clock->GetTimeNS();
+ return clock->GetTimeNS();
}
- return CyclesToNs(ticks);
+ return std::chrono::nanoseconds{Common::WallClock::CPUTickToNS(cpu_ticks)};
}
std::chrono::microseconds CoreTiming::GetGlobalTimeUs() const {
if (is_multicore) [[likely]] {
- return event_clock->GetTimeUS();
+ return clock->GetTimeUS();
}
- return CyclesToUs(ticks);
+ return std::chrono::microseconds{Common::WallClock::CPUTickToUS(cpu_ticks)};
}
} // namespace Core::Timing
diff --git a/src/core/core_timing.h b/src/core/core_timing.h
index e7c4a949f..10db1de55 100644
--- a/src/core/core_timing.h
+++ b/src/core/core_timing.h
@@ -116,14 +116,11 @@ public:
return downcount;
}
- /// Returns current time in emulated CPU cycles
- u64 GetCPUTicks() const;
-
- /// Returns current time in emulated in Clock cycles
+ /// Returns the current CNTPCT tick value.
u64 GetClockTicks() const;
- /// Returns current time in nanoseconds.
- std::chrono::nanoseconds GetCPUTimeNs() const;
+ /// Returns the current GPU tick value.
+ u64 GetGPUTicks() const;
/// Returns current time in microseconds.
std::chrono::microseconds GetGlobalTimeUs() const;
@@ -142,8 +139,7 @@ private:
void Reset();
- std::unique_ptr<Common::WallClock> cpu_clock;
- std::unique_ptr<Common::WallClock> event_clock;
+ std::unique_ptr<Common::WallClock> clock;
s64 global_timer = 0;
@@ -171,7 +167,7 @@ private:
s64 pause_end_time{};
/// Cycle timing
- u64 ticks{};
+ u64 cpu_ticks{};
s64 downcount{};
};
diff --git a/src/core/core_timing_util.h b/src/core/core_timing_util.h
deleted file mode 100644
index fe5aaefc7..000000000
--- a/src/core/core_timing_util.h
+++ /dev/null
@@ -1,58 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <chrono>
-
-#include "common/common_types.h"
-#include "core/hardware_properties.h"
-
-namespace Core::Timing {
-
-namespace detail {
-constexpr u64 CNTFREQ_ADJUSTED = Hardware::CNTFREQ / 1000;
-constexpr u64 BASE_CLOCK_RATE_ADJUSTED = Hardware::BASE_CLOCK_RATE / 1000;
-} // namespace detail
-
-[[nodiscard]] constexpr s64 msToCycles(std::chrono::milliseconds ms) {
- return ms.count() * detail::BASE_CLOCK_RATE_ADJUSTED;
-}
-
-[[nodiscard]] constexpr s64 usToCycles(std::chrono::microseconds us) {
- return us.count() * detail::BASE_CLOCK_RATE_ADJUSTED / 1000;
-}
-
-[[nodiscard]] constexpr s64 nsToCycles(std::chrono::nanoseconds ns) {
- return ns.count() * detail::BASE_CLOCK_RATE_ADJUSTED / 1000000;
-}
-
-[[nodiscard]] constexpr u64 msToClockCycles(std::chrono::milliseconds ms) {
- return static_cast<u64>(ms.count()) * detail::CNTFREQ_ADJUSTED;
-}
-
-[[nodiscard]] constexpr u64 usToClockCycles(std::chrono::microseconds us) {
- return us.count() * detail::CNTFREQ_ADJUSTED / 1000;
-}
-
-[[nodiscard]] constexpr u64 nsToClockCycles(std::chrono::nanoseconds ns) {
- return ns.count() * detail::CNTFREQ_ADJUSTED / 1000000;
-}
-
-[[nodiscard]] constexpr u64 CpuCyclesToClockCycles(u64 ticks) {
- return ticks * detail::CNTFREQ_ADJUSTED / detail::BASE_CLOCK_RATE_ADJUSTED;
-}
-
-[[nodiscard]] constexpr std::chrono::milliseconds CyclesToMs(s64 cycles) {
- return std::chrono::milliseconds(cycles / detail::BASE_CLOCK_RATE_ADJUSTED);
-}
-
-[[nodiscard]] constexpr std::chrono::nanoseconds CyclesToNs(s64 cycles) {
- return std::chrono::nanoseconds(cycles * 1000000 / detail::BASE_CLOCK_RATE_ADJUSTED);
-}
-
-[[nodiscard]] constexpr std::chrono::microseconds CyclesToUs(s64 cycles) {
- return std::chrono::microseconds(cycles * 1000 / detail::BASE_CLOCK_RATE_ADJUSTED);
-}
-
-} // namespace Core::Timing
diff --git a/src/core/file_sys/patch_manager.cpp b/src/core/file_sys/patch_manager.cpp
index 4e61d4335..d3286b352 100644
--- a/src/core/file_sys/patch_manager.cpp
+++ b/src/core/file_sys/patch_manager.cpp
@@ -153,7 +153,7 @@ VirtualDir PatchManager::PatchExeFS(VirtualDir exefs) const {
const auto sdmc_load_dir = fs_controller.GetSDMCModificationLoadRoot(title_id);
std::vector<VirtualDir> patch_dirs = {sdmc_load_dir};
- if (load_dir != nullptr && load_dir->GetSize() > 0) {
+ if (load_dir != nullptr) {
const auto load_patch_dirs = load_dir->GetSubdirectories();
patch_dirs.insert(patch_dirs.end(), load_patch_dirs.begin(), load_patch_dirs.end());
}
@@ -354,8 +354,7 @@ static void ApplyLayeredFS(VirtualFile& romfs, u64 title_id, ContentRecordType t
const auto load_dir = fs_controller.GetModificationLoadRoot(title_id);
const auto sdmc_load_dir = fs_controller.GetSDMCModificationLoadRoot(title_id);
if ((type != ContentRecordType::Program && type != ContentRecordType::Data) ||
- ((load_dir == nullptr || load_dir->GetSize() <= 0) &&
- (sdmc_load_dir == nullptr || sdmc_load_dir->GetSize() <= 0))) {
+ (load_dir == nullptr && sdmc_load_dir == nullptr)) {
return;
}
@@ -496,7 +495,7 @@ PatchManager::PatchVersionNames PatchManager::GetPatchVersionNames(VirtualFile u
// General Mods (LayeredFS and IPS)
const auto mod_dir = fs_controller.GetModificationLoadRoot(title_id);
- if (mod_dir != nullptr && mod_dir->GetSize() > 0) {
+ if (mod_dir != nullptr) {
for (const auto& mod : mod_dir->GetSubdirectories()) {
std::string types;
@@ -540,7 +539,7 @@ PatchManager::PatchVersionNames PatchManager::GetPatchVersionNames(VirtualFile u
// SDMC mod directory (RomFS LayeredFS)
const auto sdmc_mod_dir = fs_controller.GetSDMCModificationLoadRoot(title_id);
- if (sdmc_mod_dir != nullptr && sdmc_mod_dir->GetSize() > 0) {
+ if (sdmc_mod_dir != nullptr) {
std::string types;
if (IsDirValidAndNonEmpty(FindSubdirectoryCaseless(sdmc_mod_dir, "exefs"))) {
AppendCommaIfNotEmpty(types, "LayeredExeFS");
diff --git a/src/core/file_sys/vfs_concat.cpp b/src/core/file_sys/vfs_concat.cpp
index 853b893a1..311a59e5f 100644
--- a/src/core/file_sys/vfs_concat.cpp
+++ b/src/core/file_sys/vfs_concat.cpp
@@ -150,23 +150,29 @@ std::size_t ConcatenatedVfsFile::Read(u8* data, std::size_t length, std::size_t
while (cur_length > 0 && it != concatenation_map.end()) {
// Check if we can read the file at this position.
const auto& file = it->file;
- const u64 file_offset = it->offset;
+ const u64 map_offset = it->offset;
const u64 file_size = file->GetSize();
- if (cur_offset >= file_offset + file_size) {
+ if (cur_offset > map_offset + file_size) {
// Entirely out of bounds read.
break;
}
// Read the file at this position.
- const u64 intended_read_size = std::min<u64>(cur_length, file_size);
+ const u64 file_seek = cur_offset - map_offset;
+ const u64 intended_read_size = std::min<u64>(cur_length, file_size - file_seek);
const u64 actual_read_size =
- file->Read(data + (cur_offset - offset), intended_read_size, cur_offset - file_offset);
+ file->Read(data + (cur_offset - offset), intended_read_size, file_seek);
// Update tracking.
cur_offset += actual_read_size;
cur_length -= actual_read_size;
it++;
+
+ // If we encountered a short read, we're done.
+ if (actual_read_size < intended_read_size) {
+ break;
+ }
}
return cur_offset - offset;
diff --git a/src/core/file_sys/vfs_real.cpp b/src/core/file_sys/vfs_real.cpp
index 7a15d8438..b0515ec05 100644
--- a/src/core/file_sys/vfs_real.cpp
+++ b/src/core/file_sys/vfs_real.cpp
@@ -10,6 +10,7 @@
#include "common/fs/fs.h"
#include "common/fs/path_util.h"
#include "common/logging/log.h"
+#include "core/file_sys/vfs.h"
#include "core/file_sys/vfs_real.h"
// For FileTimeStampRaw
@@ -72,8 +73,10 @@ VfsEntryType RealVfsFilesystem::GetEntryType(std::string_view path_) const {
return VfsEntryType::File;
}
-VirtualFile RealVfsFilesystem::OpenFile(std::string_view path_, Mode perms) {
+VirtualFile RealVfsFilesystem::OpenFileFromEntry(std::string_view path_, std::optional<u64> size,
+ Mode perms) {
const auto path = FS::SanitizePath(path_, FS::DirectorySeparator::PlatformDefault);
+ std::scoped_lock lk{list_lock};
if (auto it = cache.find(path); it != cache.end()) {
if (auto file = it->second.lock(); file) {
@@ -81,23 +84,30 @@ VirtualFile RealVfsFilesystem::OpenFile(std::string_view path_, Mode perms) {
}
}
- if (!FS::Exists(path) || !FS::IsFile(path)) {
+ if (!size && !FS::IsFile(path)) {
return nullptr;
}
auto reference = std::make_unique<FileReference>();
- this->InsertReferenceIntoList(*reference);
+ this->InsertReferenceIntoListLocked(*reference);
- auto file =
- std::shared_ptr<RealVfsFile>(new RealVfsFile(*this, std::move(reference), path, perms));
+ auto file = std::shared_ptr<RealVfsFile>(
+ new RealVfsFile(*this, std::move(reference), path, perms, size));
cache[path] = file;
return file;
}
+VirtualFile RealVfsFilesystem::OpenFile(std::string_view path_, Mode perms) {
+ return OpenFileFromEntry(path_, {}, perms);
+}
+
VirtualFile RealVfsFilesystem::CreateFile(std::string_view path_, Mode perms) {
const auto path = FS::SanitizePath(path_, FS::DirectorySeparator::PlatformDefault);
- cache.erase(path);
+ {
+ std::scoped_lock lk{list_lock};
+ cache.erase(path);
+ }
// Current usages of CreateFile expect to delete the contents of an existing file.
if (FS::IsFile(path)) {
@@ -127,8 +137,11 @@ VirtualFile RealVfsFilesystem::CopyFile(std::string_view old_path_, std::string_
VirtualFile RealVfsFilesystem::MoveFile(std::string_view old_path_, std::string_view new_path_) {
const auto old_path = FS::SanitizePath(old_path_, FS::DirectorySeparator::PlatformDefault);
const auto new_path = FS::SanitizePath(new_path_, FS::DirectorySeparator::PlatformDefault);
- cache.erase(old_path);
- cache.erase(new_path);
+ {
+ std::scoped_lock lk{list_lock};
+ cache.erase(old_path);
+ cache.erase(new_path);
+ }
if (!FS::RenameFile(old_path, new_path)) {
return nullptr;
}
@@ -137,7 +150,10 @@ VirtualFile RealVfsFilesystem::MoveFile(std::string_view old_path_, std::string_
bool RealVfsFilesystem::DeleteFile(std::string_view path_) {
const auto path = FS::SanitizePath(path_, FS::DirectorySeparator::PlatformDefault);
- cache.erase(path);
+ {
+ std::scoped_lock lk{list_lock};
+ cache.erase(path);
+ }
return FS::RemoveFile(path);
}
@@ -176,14 +192,17 @@ bool RealVfsFilesystem::DeleteDirectory(std::string_view path_) {
return FS::RemoveDirRecursively(path);
}
-void RealVfsFilesystem::RefreshReference(const std::string& path, Mode perms,
- FileReference& reference) {
+std::unique_lock<std::mutex> RealVfsFilesystem::RefreshReference(const std::string& path,
+ Mode perms,
+ FileReference& reference) {
+ std::unique_lock lk{list_lock};
+
// Temporarily remove from list.
- this->RemoveReferenceFromList(reference);
+ this->RemoveReferenceFromListLocked(reference);
// Restore file if needed.
if (!reference.file) {
- this->EvictSingleReference();
+ this->EvictSingleReferenceLocked();
reference.file =
FS::FileOpen(path, ModeFlagsToFileAccessMode(perms), FS::FileType::BinaryFile);
@@ -193,12 +212,16 @@ void RealVfsFilesystem::RefreshReference(const std::string& path, Mode perms,
}
// Reinsert into list.
- this->InsertReferenceIntoList(reference);
+ this->InsertReferenceIntoListLocked(reference);
+
+ return lk;
}
void RealVfsFilesystem::DropReference(std::unique_ptr<FileReference>&& reference) {
+ std::scoped_lock lk{list_lock};
+
// Remove from list.
- this->RemoveReferenceFromList(*reference);
+ this->RemoveReferenceFromListLocked(*reference);
// Close the file.
if (reference->file) {
@@ -207,14 +230,14 @@ void RealVfsFilesystem::DropReference(std::unique_ptr<FileReference>&& reference
}
}
-void RealVfsFilesystem::EvictSingleReference() {
+void RealVfsFilesystem::EvictSingleReferenceLocked() {
if (num_open_files < MaxOpenFiles || open_references.empty()) {
return;
}
// Get and remove from list.
auto& reference = open_references.back();
- this->RemoveReferenceFromList(reference);
+ this->RemoveReferenceFromListLocked(reference);
// Close the file.
if (reference.file) {
@@ -223,10 +246,10 @@ void RealVfsFilesystem::EvictSingleReference() {
}
// Reinsert into closed list.
- this->InsertReferenceIntoList(reference);
+ this->InsertReferenceIntoListLocked(reference);
}
-void RealVfsFilesystem::InsertReferenceIntoList(FileReference& reference) {
+void RealVfsFilesystem::InsertReferenceIntoListLocked(FileReference& reference) {
if (reference.file) {
open_references.push_front(reference);
} else {
@@ -234,7 +257,7 @@ void RealVfsFilesystem::InsertReferenceIntoList(FileReference& reference) {
}
}
-void RealVfsFilesystem::RemoveReferenceFromList(FileReference& reference) {
+void RealVfsFilesystem::RemoveReferenceFromListLocked(FileReference& reference) {
if (reference.file) {
open_references.erase(open_references.iterator_to(reference));
} else {
@@ -243,10 +266,10 @@ void RealVfsFilesystem::RemoveReferenceFromList(FileReference& reference) {
}
RealVfsFile::RealVfsFile(RealVfsFilesystem& base_, std::unique_ptr<FileReference> reference_,
- const std::string& path_, Mode perms_)
+ const std::string& path_, Mode perms_, std::optional<u64> size_)
: base(base_), reference(std::move(reference_)), path(path_),
parent_path(FS::GetParentPath(path_)), path_components(FS::SplitPathComponents(path_)),
- perms(perms_) {}
+ size(size_), perms(perms_) {}
RealVfsFile::~RealVfsFile() {
base.DropReference(std::move(reference));
@@ -257,12 +280,15 @@ std::string RealVfsFile::GetName() const {
}
std::size_t RealVfsFile::GetSize() const {
- base.RefreshReference(path, perms, *reference);
- return reference->file ? reference->file->GetSize() : 0;
+ if (size) {
+ return *size;
+ }
+ return FS::GetSize(path);
}
bool RealVfsFile::Resize(std::size_t new_size) {
- base.RefreshReference(path, perms, *reference);
+ size.reset();
+ auto lk = base.RefreshReference(path, perms, *reference);
return reference->file ? reference->file->SetSize(new_size) : false;
}
@@ -279,7 +305,7 @@ bool RealVfsFile::IsReadable() const {
}
std::size_t RealVfsFile::Read(u8* data, std::size_t length, std::size_t offset) const {
- base.RefreshReference(path, perms, *reference);
+ auto lk = base.RefreshReference(path, perms, *reference);
if (!reference->file || !reference->file->Seek(static_cast<s64>(offset))) {
return 0;
}
@@ -287,7 +313,8 @@ std::size_t RealVfsFile::Read(u8* data, std::size_t length, std::size_t offset)
}
std::size_t RealVfsFile::Write(const u8* data, std::size_t length, std::size_t offset) {
- base.RefreshReference(path, perms, *reference);
+ size.reset();
+ auto lk = base.RefreshReference(path, perms, *reference);
if (!reference->file || !reference->file->Seek(static_cast<s64>(offset))) {
return 0;
}
@@ -309,10 +336,11 @@ std::vector<VirtualFile> RealVfsDirectory::IterateEntries<RealVfsFile, VfsFile>(
std::vector<VirtualFile> out;
- const FS::DirEntryCallable callback = [this, &out](const std::filesystem::path& full_path) {
- const auto full_path_string = FS::PathToUTF8String(full_path);
+ const FS::DirEntryCallable callback = [this,
+ &out](const std::filesystem::directory_entry& entry) {
+ const auto full_path_string = FS::PathToUTF8String(entry.path());
- out.emplace_back(base.OpenFile(full_path_string, perms));
+ out.emplace_back(base.OpenFileFromEntry(full_path_string, entry.file_size(), perms));
return true;
};
@@ -330,8 +358,9 @@ std::vector<VirtualDir> RealVfsDirectory::IterateEntries<RealVfsDirectory, VfsDi
std::vector<VirtualDir> out;
- const FS::DirEntryCallable callback = [this, &out](const std::filesystem::path& full_path) {
- const auto full_path_string = FS::PathToUTF8String(full_path);
+ const FS::DirEntryCallable callback = [this,
+ &out](const std::filesystem::directory_entry& entry) {
+ const auto full_path_string = FS::PathToUTF8String(entry.path());
out.emplace_back(base.OpenDirectory(full_path_string, perms));
@@ -483,12 +512,10 @@ std::map<std::string, VfsEntryType, std::less<>> RealVfsDirectory::GetEntries()
std::map<std::string, VfsEntryType, std::less<>> out;
- const FS::DirEntryCallable callback = [&out](const std::filesystem::path& full_path) {
- const auto filename = FS::PathToUTF8String(full_path.filename());
-
+ const FS::DirEntryCallable callback = [&out](const std::filesystem::directory_entry& entry) {
+ const auto filename = FS::PathToUTF8String(entry.path().filename());
out.insert_or_assign(filename,
- FS::IsDir(full_path) ? VfsEntryType::Directory : VfsEntryType::File);
-
+ entry.is_directory() ? VfsEntryType::Directory : VfsEntryType::File);
return true;
};
diff --git a/src/core/file_sys/vfs_real.h b/src/core/file_sys/vfs_real.h
index d8c900e33..26ea7df62 100644
--- a/src/core/file_sys/vfs_real.h
+++ b/src/core/file_sys/vfs_real.h
@@ -4,6 +4,8 @@
#pragma once
#include <map>
+#include <mutex>
+#include <optional>
#include <string_view>
#include "common/intrusive_list.h"
#include "core/file_sys/mode.h"
@@ -20,6 +22,8 @@ struct FileReference : public Common::IntrusiveListBaseNode<FileReference> {
};
class RealVfsFile;
+class RealVfsDirectory;
+
class RealVfsFilesystem : public VfsFilesystem {
public:
RealVfsFilesystem();
@@ -45,17 +49,24 @@ private:
std::map<std::string, std::weak_ptr<VfsFile>, std::less<>> cache;
ReferenceListType open_references;
ReferenceListType closed_references;
+ std::mutex list_lock;
size_t num_open_files{};
private:
friend class RealVfsFile;
- void RefreshReference(const std::string& path, Mode perms, FileReference& reference);
+ std::unique_lock<std::mutex> RefreshReference(const std::string& path, Mode perms,
+ FileReference& reference);
void DropReference(std::unique_ptr<FileReference>&& reference);
- void EvictSingleReference();
private:
- void InsertReferenceIntoList(FileReference& reference);
- void RemoveReferenceFromList(FileReference& reference);
+ friend class RealVfsDirectory;
+ VirtualFile OpenFileFromEntry(std::string_view path, std::optional<u64> size,
+ Mode perms = Mode::Read);
+
+private:
+ void EvictSingleReferenceLocked();
+ void InsertReferenceIntoListLocked(FileReference& reference);
+ void RemoveReferenceFromListLocked(FileReference& reference);
};
// An implementation of VfsFile that represents a file on the user's computer.
@@ -78,13 +89,14 @@ public:
private:
RealVfsFile(RealVfsFilesystem& base, std::unique_ptr<FileReference> reference,
- const std::string& path, Mode perms = Mode::Read);
+ const std::string& path, Mode perms = Mode::Read, std::optional<u64> size = {});
RealVfsFilesystem& base;
std::unique_ptr<FileReference> reference;
std::string path;
std::string parent_path;
std::vector<std::string> path_components;
+ std::optional<u64> size;
Mode perms;
};
diff --git a/src/core/hid/emulated_controller.cpp b/src/core/hid/emulated_controller.cpp
index 0a7777732..1ebc32c1e 100644
--- a/src/core/hid/emulated_controller.cpp
+++ b/src/core/hid/emulated_controller.cpp
@@ -149,12 +149,16 @@ void EmulatedController::LoadDevices() {
camera_params[0] = right_joycon;
camera_params[0].Set("camera", true);
- camera_params[1] = Common::ParamPackage{"engine:camera,camera:1"};
- ring_params[1] = Common::ParamPackage{"engine:joycon,axis_x:100,axis_y:101"};
- nfc_params[0] = Common::ParamPackage{"engine:virtual_amiibo,nfc:1"};
nfc_params[1] = right_joycon;
nfc_params[1].Set("nfc", true);
+ // Only map virtual devices to the first controller
+ if (npad_id_type == NpadIdType::Player1 || npad_id_type == NpadIdType::Handheld) {
+ camera_params[1] = Common::ParamPackage{"engine:camera,camera:1"};
+ ring_params[1] = Common::ParamPackage{"engine:joycon,axis_x:100,axis_y:101"};
+ nfc_params[0] = Common::ParamPackage{"engine:virtual_amiibo,nfc:1"};
+ }
+
output_params[LeftIndex] = left_joycon;
output_params[RightIndex] = right_joycon;
output_params[2] = camera_params[1];
@@ -1176,10 +1180,7 @@ void EmulatedController::SetNfc(const Common::Input::CallbackStatus& callback) {
return;
}
- controller.nfc_state = {
- controller.nfc_values.state,
- controller.nfc_values.data,
- };
+ controller.nfc_state = controller.nfc_values;
}
bool EmulatedController::SetVibration(std::size_t device_index, VibrationValue vibration) {
@@ -1249,6 +1250,11 @@ Common::Input::DriverResult EmulatedController::SetPollingMode(
const auto virtual_nfc_result = nfc_output_device->SetPollingMode(polling_mode);
const auto mapped_nfc_result = right_output_device->SetPollingMode(polling_mode);
+ // Restore previous state
+ if (mapped_nfc_result != Common::Input::DriverResult::Success) {
+ right_output_device->SetPollingMode(Common::Input::PollingMode::Active);
+ }
+
if (virtual_nfc_result == Common::Input::DriverResult::Success) {
return virtual_nfc_result;
}
@@ -1308,6 +1314,79 @@ bool EmulatedController::HasNfc() const {
return is_connected && (has_virtual_nfc && is_virtual_nfc_supported);
}
+bool EmulatedController::AddNfcHandle() {
+ nfc_handles++;
+ return SetPollingMode(EmulatedDeviceIndex::RightIndex, Common::Input::PollingMode::NFC) ==
+ Common::Input::DriverResult::Success;
+}
+
+bool EmulatedController::RemoveNfcHandle() {
+ nfc_handles--;
+ if (nfc_handles <= 0) {
+ return SetPollingMode(EmulatedDeviceIndex::RightIndex,
+ Common::Input::PollingMode::Active) ==
+ Common::Input::DriverResult::Success;
+ }
+ return true;
+}
+
+bool EmulatedController::StartNfcPolling() {
+ auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
+ auto& nfc_virtual_output_device = output_devices[3];
+
+ const auto device_result = nfc_output_device->StartNfcPolling();
+ const auto virtual_device_result = nfc_virtual_output_device->StartNfcPolling();
+
+ return device_result == Common::Input::NfcState::Success ||
+ virtual_device_result == Common::Input::NfcState::Success;
+}
+
+bool EmulatedController::StopNfcPolling() {
+ auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
+ auto& nfc_virtual_output_device = output_devices[3];
+
+ const auto device_result = nfc_output_device->StopNfcPolling();
+ const auto virtual_device_result = nfc_virtual_output_device->StopNfcPolling();
+
+ return device_result == Common::Input::NfcState::Success ||
+ virtual_device_result == Common::Input::NfcState::Success;
+}
+
+bool EmulatedController::ReadAmiiboData(std::vector<u8>& data) {
+ auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
+ auto& nfc_virtual_output_device = output_devices[3];
+
+ if (nfc_output_device->ReadAmiiboData(data) == Common::Input::NfcState::Success) {
+ return true;
+ }
+
+ return nfc_virtual_output_device->ReadAmiiboData(data) == Common::Input::NfcState::Success;
+}
+
+bool EmulatedController::ReadMifareData(const Common::Input::MifareRequest& request,
+ Common::Input::MifareRequest& out_data) {
+ auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
+ auto& nfc_virtual_output_device = output_devices[3];
+
+ if (nfc_output_device->ReadMifareData(request, out_data) == Common::Input::NfcState::Success) {
+ return true;
+ }
+
+ return nfc_virtual_output_device->ReadMifareData(request, out_data) ==
+ Common::Input::NfcState::Success;
+}
+
+bool EmulatedController::WriteMifareData(const Common::Input::MifareRequest& request) {
+ auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
+ auto& nfc_virtual_output_device = output_devices[3];
+
+ if (nfc_output_device->WriteMifareData(request) == Common::Input::NfcState::Success) {
+ return true;
+ }
+
+ return nfc_virtual_output_device->WriteMifareData(request) == Common::Input::NfcState::Success;
+}
+
bool EmulatedController::WriteNfc(const std::vector<u8>& data) {
auto& nfc_output_device = output_devices[static_cast<std::size_t>(DeviceIndex::Right)];
auto& nfc_virtual_output_device = output_devices[3];
diff --git a/src/core/hid/emulated_controller.h b/src/core/hid/emulated_controller.h
index 09fe1a0ab..d511e5fac 100644
--- a/src/core/hid/emulated_controller.h
+++ b/src/core/hid/emulated_controller.h
@@ -97,10 +97,7 @@ struct RingSensorForce {
f32 force;
};
-struct NfcState {
- Common::Input::NfcState state{};
- std::vector<u8> data{};
-};
+using NfcState = Common::Input::NfcStatus;
struct ControllerMotion {
Common::Vec3f accel{};
@@ -393,9 +390,31 @@ public:
/// Returns true if the device has nfc support
bool HasNfc() const;
+ /// Sets the joycon in nfc mode and increments the handle count
+ bool AddNfcHandle();
+
+ /// Decrements the handle count if zero sets the joycon in active mode
+ bool RemoveNfcHandle();
+
+ /// Start searching for nfc tags
+ bool StartNfcPolling();
+
+ /// Stop searching for nfc tags
+ bool StopNfcPolling();
+
+ /// Returns true if the nfc tag was readable
+ bool ReadAmiiboData(std::vector<u8>& data);
+
/// Returns true if the nfc tag was written
bool WriteNfc(const std::vector<u8>& data);
+ /// Returns true if the nfc tag was readable
+ bool ReadMifareData(const Common::Input::MifareRequest& request,
+ Common::Input::MifareRequest& out_data);
+
+ /// Returns true if the nfc tag was written
+ bool WriteMifareData(const Common::Input::MifareRequest& request);
+
/// Returns the led pattern corresponding to this emulated controller
LedPattern GetLedPattern() const;
@@ -532,6 +551,7 @@ private:
bool system_buttons_enabled{true};
f32 motion_sensitivity{Core::HID::MotionInput::IsAtRestStandard};
u32 turbo_button_state{0};
+ std::size_t nfc_handles{0};
// Temporary values to avoid doing changes while the controller is in configuring mode
NpadStyleIndex tmp_npad_type{NpadStyleIndex::None};
diff --git a/src/core/hid/input_converter.cpp b/src/core/hid/input_converter.cpp
index 4ccb1c596..a05716fd8 100644
--- a/src/core/hid/input_converter.cpp
+++ b/src/core/hid/input_converter.cpp
@@ -299,11 +299,7 @@ Common::Input::NfcStatus TransformToNfc(const Common::Input::CallbackStatus& cal
Common::Input::NfcStatus nfc{};
switch (callback.type) {
case Common::Input::InputType::Nfc:
- nfc = {
- .state = callback.nfc_status,
- .data = callback.raw_data,
- };
- break;
+ return callback.nfc_status;
default:
LOG_ERROR(Input, "Conversion from type {} to NFC not implemented", callback.type);
break;
diff --git a/src/core/hle/kernel/k_scheduler.cpp b/src/core/hle/kernel/k_scheduler.cpp
index faa12b4f0..75ce5a23c 100644
--- a/src/core/hle/kernel/k_scheduler.cpp
+++ b/src/core/hle/kernel/k_scheduler.cpp
@@ -184,7 +184,8 @@ u64 KScheduler::UpdateHighestPriorityThread(KThread* highest_thread) {
prev_highest_thread != highest_thread) [[likely]] {
if (prev_highest_thread != nullptr) [[likely]] {
IncrementScheduledCount(prev_highest_thread);
- prev_highest_thread->SetLastScheduledTick(m_kernel.System().CoreTiming().GetCPUTicks());
+ prev_highest_thread->SetLastScheduledTick(
+ m_kernel.System().CoreTiming().GetClockTicks());
}
if (m_state.should_count_idle) {
if (highest_thread != nullptr) [[likely]] {
@@ -351,7 +352,7 @@ void KScheduler::SwitchThread(KThread* next_thread) {
// Update the CPU time tracking variables.
const s64 prev_tick = m_last_context_switch_time;
- const s64 cur_tick = m_kernel.System().CoreTiming().GetCPUTicks();
+ const s64 cur_tick = m_kernel.System().CoreTiming().GetClockTicks();
const s64 tick_diff = cur_tick - prev_tick;
cur_thread->AddCpuTime(m_core_id, tick_diff);
if (cur_process != nullptr) {
diff --git a/src/core/hle/kernel/k_synchronization_object.cpp b/src/core/hle/kernel/k_synchronization_object.cpp
index b7da3eee7..3e5b735b1 100644
--- a/src/core/hle/kernel/k_synchronization_object.cpp
+++ b/src/core/hle/kernel/k_synchronization_object.cpp
@@ -3,6 +3,7 @@
#include "common/assert.h"
#include "common/common_types.h"
+#include "common/scratch_buffer.h"
#include "core/hle/kernel/k_scheduler.h"
#include "core/hle/kernel/k_scoped_scheduler_lock_and_sleep.h"
#include "core/hle/kernel/k_synchronization_object.h"
@@ -75,7 +76,7 @@ Result KSynchronizationObject::Wait(KernelCore& kernel, s32* out_index,
KSynchronizationObject** objects, const s32 num_objects,
s64 timeout) {
// Allocate space on stack for thread nodes.
- std::vector<ThreadListNode> thread_nodes(num_objects);
+ std::array<ThreadListNode, Svc::ArgumentHandleCountMax> thread_nodes;
// Prepare for wait.
KThread* thread = GetCurrentThreadPointer(kernel);
diff --git a/src/core/hle/kernel/k_thread.cpp b/src/core/hle/kernel/k_thread.cpp
index 908811e2c..adb6ec581 100644
--- a/src/core/hle/kernel/k_thread.cpp
+++ b/src/core/hle/kernel/k_thread.cpp
@@ -909,7 +909,7 @@ Result KThread::SetActivity(Svc::ThreadActivity activity) {
R_SUCCEED();
}
-Result KThread::GetThreadContext3(std::vector<u8>& out) {
+Result KThread::GetThreadContext3(Common::ScratchBuffer<u8>& out) {
// Lock ourselves.
KScopedLightLock lk{m_activity_pause_lock};
@@ -927,15 +927,13 @@ Result KThread::GetThreadContext3(std::vector<u8>& out) {
// Mask away mode bits, interrupt bits, IL bit, and other reserved bits.
auto context = GetContext64();
context.pstate &= 0xFF0FFE20;
-
- out.resize(sizeof(context));
+ out.resize_destructive(sizeof(context));
std::memcpy(out.data(), std::addressof(context), sizeof(context));
} else {
// Mask away mode bits, interrupt bits, IL bit, and other reserved bits.
auto context = GetContext32();
context.cpsr &= 0xFF0FFE20;
-
- out.resize(sizeof(context));
+ out.resize_destructive(sizeof(context));
std::memcpy(out.data(), std::addressof(context), sizeof(context));
}
}
diff --git a/src/core/hle/kernel/k_thread.h b/src/core/hle/kernel/k_thread.h
index 37fe5db77..dd662b3f8 100644
--- a/src/core/hle/kernel/k_thread.h
+++ b/src/core/hle/kernel/k_thread.h
@@ -15,6 +15,7 @@
#include "common/intrusive_list.h"
#include "common/intrusive_red_black_tree.h"
+#include "common/scratch_buffer.h"
#include "common/spin_lock.h"
#include "core/arm/arm_interface.h"
#include "core/hle/kernel/k_affinity_mask.h"
@@ -567,7 +568,7 @@ public:
void RemoveWaiter(KThread* thread);
- Result GetThreadContext3(std::vector<u8>& out);
+ Result GetThreadContext3(Common::ScratchBuffer<u8>& out);
KThread* RemoveUserWaiterByKey(bool* out_has_waiters, KProcessAddress key) {
return this->RemoveWaiterByKey(out_has_waiters, key, false);
diff --git a/src/core/hle/kernel/svc/svc_info.cpp b/src/core/hle/kernel/svc/svc_info.cpp
index 2b2c878b5..445cdd87b 100644
--- a/src/core/hle/kernel/svc/svc_info.cpp
+++ b/src/core/hle/kernel/svc/svc_info.cpp
@@ -199,9 +199,9 @@ Result GetInfo(Core::System& system, u64* result, InfoType info_id_type, Handle
if (same_thread && info_sub_id == 0xFFFFFFFFFFFFFFFF) {
const u64 thread_ticks = current_thread->GetCpuTime();
- out_ticks = thread_ticks + (core_timing.GetCPUTicks() - prev_ctx_ticks);
+ out_ticks = thread_ticks + (core_timing.GetClockTicks() - prev_ctx_ticks);
} else if (same_thread && info_sub_id == system.Kernel().CurrentPhysicalCoreIndex()) {
- out_ticks = core_timing.GetCPUTicks() - prev_ctx_ticks;
+ out_ticks = core_timing.GetClockTicks() - prev_ctx_ticks;
}
*result = out_ticks;
diff --git a/src/core/hle/kernel/svc/svc_ipc.cpp b/src/core/hle/kernel/svc/svc_ipc.cpp
index ea03068aa..60247df2e 100644
--- a/src/core/hle/kernel/svc/svc_ipc.cpp
+++ b/src/core/hle/kernel/svc/svc_ipc.cpp
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/scope_exit.h"
+#include "common/scratch_buffer.h"
#include "core/core.h"
#include "core/hle/kernel/k_client_session.h"
#include "core/hle/kernel/k_process.h"
@@ -45,11 +46,11 @@ Result ReplyAndReceive(Core::System& system, s32* out_index, uint64_t handles_ad
handles_addr, static_cast<u64>(sizeof(Handle) * num_handles)),
ResultInvalidPointer);
- std::vector<Handle> handles(num_handles);
+ std::array<Handle, Svc::ArgumentHandleCountMax> handles;
GetCurrentMemory(kernel).ReadBlock(handles_addr, handles.data(), sizeof(Handle) * num_handles);
// Convert handle list to object table.
- std::vector<KSynchronizationObject*> objs(num_handles);
+ std::array<KSynchronizationObject*, Svc::ArgumentHandleCountMax> objs;
R_UNLESS(handle_table.GetMultipleObjects<KSynchronizationObject>(objs.data(), handles.data(),
num_handles),
ResultInvalidHandle);
@@ -80,7 +81,7 @@ Result ReplyAndReceive(Core::System& system, s32* out_index, uint64_t handles_ad
// Wait for an object.
s32 index;
Result result = KSynchronizationObject::Wait(kernel, std::addressof(index), objs.data(),
- static_cast<s32>(objs.size()), timeout_ns);
+ num_handles, timeout_ns);
if (result == ResultTimedOut) {
R_RETURN(result);
}
diff --git a/src/core/hle/kernel/svc/svc_synchronization.cpp b/src/core/hle/kernel/svc/svc_synchronization.cpp
index 04d65f0bd..53df5bcd8 100644
--- a/src/core/hle/kernel/svc/svc_synchronization.cpp
+++ b/src/core/hle/kernel/svc/svc_synchronization.cpp
@@ -2,6 +2,7 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include "common/scope_exit.h"
+#include "common/scratch_buffer.h"
#include "core/core.h"
#include "core/hle/kernel/k_process.h"
#include "core/hle/kernel/k_readable_event.h"
@@ -54,7 +55,7 @@ static Result WaitSynchronization(Core::System& system, int32_t* out_index, cons
// Get the synchronization context.
auto& kernel = system.Kernel();
auto& handle_table = GetCurrentProcess(kernel).GetHandleTable();
- std::vector<KSynchronizationObject*> objs(num_handles);
+ std::array<KSynchronizationObject*, Svc::ArgumentHandleCountMax> objs;
// Copy user handles.
if (num_handles > 0) {
@@ -72,8 +73,8 @@ static Result WaitSynchronization(Core::System& system, int32_t* out_index, cons
});
// Wait on the objects.
- Result res = KSynchronizationObject::Wait(kernel, out_index, objs.data(),
- static_cast<s32>(objs.size()), timeout_ns);
+ Result res =
+ KSynchronizationObject::Wait(kernel, out_index, objs.data(), num_handles, timeout_ns);
R_SUCCEED_IF(res == ResultSessionClosed);
R_RETURN(res);
@@ -87,8 +88,7 @@ Result WaitSynchronization(Core::System& system, int32_t* out_index, u64 user_ha
// Ensure number of handles is valid.
R_UNLESS(0 <= num_handles && num_handles <= Svc::ArgumentHandleCountMax, ResultOutOfRange);
-
- std::vector<Handle> handles(num_handles);
+ std::array<Handle, Svc::ArgumentHandleCountMax> handles;
if (num_handles > 0) {
GetCurrentMemory(system.Kernel())
.ReadBlock(user_handles, handles.data(), num_handles * sizeof(Handle));
diff --git a/src/core/hle/kernel/svc/svc_thread.cpp b/src/core/hle/kernel/svc/svc_thread.cpp
index 37b54079c..36b94e6bf 100644
--- a/src/core/hle/kernel/svc/svc_thread.cpp
+++ b/src/core/hle/kernel/svc/svc_thread.cpp
@@ -174,7 +174,7 @@ Result GetThreadContext3(Core::System& system, u64 out_context, Handle thread_ha
}
// Get the thread context.
- std::vector<u8> context;
+ static thread_local Common::ScratchBuffer<u8> context;
R_TRY(thread->GetThreadContext3(context));
// Copy the thread context to user space.
diff --git a/src/core/hle/kernel/svc/svc_tick.cpp b/src/core/hle/kernel/svc/svc_tick.cpp
index 561336482..7dd7c6e51 100644
--- a/src/core/hle/kernel/svc/svc_tick.cpp
+++ b/src/core/hle/kernel/svc/svc_tick.cpp
@@ -12,16 +12,8 @@ namespace Kernel::Svc {
int64_t GetSystemTick(Core::System& system) {
LOG_TRACE(Kernel_SVC, "called");
- auto& core_timing = system.CoreTiming();
-
// Returns the value of cntpct_el0 (https://switchbrew.org/wiki/SVC#svcGetSystemTick)
- const u64 result{core_timing.GetClockTicks()};
-
- if (!system.Kernel().IsMulticore()) {
- core_timing.AddTicks(400U);
- }
-
- return static_cast<int64_t>(result);
+ return static_cast<int64_t>(system.CoreTiming().GetClockTicks());
}
int64_t GetSystemTick64(Core::System& system) {
diff --git a/src/core/hle/service/am/applets/applet_cabinet.cpp b/src/core/hle/service/am/applets/applet_cabinet.cpp
index 8b754e9d4..19ed184e8 100644
--- a/src/core/hle/service/am/applets/applet_cabinet.cpp
+++ b/src/core/hle/service/am/applets/applet_cabinet.cpp
@@ -141,7 +141,7 @@ void Cabinet::DisplayCompleted(bool apply_changes, std::string_view amiibo_name)
applet_output.device_handle = applet_input_common.device_handle;
applet_output.result = CabinetResult::Cancel;
const auto reg_result = nfp_device->GetRegisterInfo(applet_output.register_info);
- const auto tag_result = nfp_device->GetTagInfo(applet_output.tag_info, false);
+ const auto tag_result = nfp_device->GetTagInfo(applet_output.tag_info);
nfp_device->Finalize();
if (reg_result.IsSuccess()) {
diff --git a/src/core/hle/service/audio/audin_u.cpp b/src/core/hle/service/audio/audin_u.cpp
index f0640c64f..c8d574993 100644
--- a/src/core/hle/service/audio/audin_u.cpp
+++ b/src/core/hle/service/audio/audin_u.cpp
@@ -5,6 +5,7 @@
#include "audio_core/renderer/audio_device.h"
#include "common/common_funcs.h"
#include "common/logging/log.h"
+#include "common/settings.h"
#include "common/string_util.h"
#include "core/core.h"
#include "core/hle/kernel/k_event.h"
@@ -123,19 +124,13 @@ private:
void GetReleasedAudioInBuffer(HLERequestContext& ctx) {
const auto write_buffer_size = ctx.GetWriteBufferNumElements<u64>();
- std::vector<u64> released_buffers(write_buffer_size);
+ tmp_buffer.resize_destructive(write_buffer_size);
+ tmp_buffer[0] = 0;
- const auto count = impl->GetReleasedBuffers(released_buffers);
+ const auto count = impl->GetReleasedBuffers(tmp_buffer);
- [[maybe_unused]] std::string tags{};
- for (u32 i = 0; i < count; i++) {
- tags += fmt::format("{:08X}, ", released_buffers[i]);
- }
- [[maybe_unused]] auto sessionid{impl->GetSystem().GetSessionId()};
- LOG_TRACE(Service_Audio, "called. Session {} released {} buffers: {}", sessionid, count,
- tags);
+ ctx.WriteBuffer(tmp_buffer);
- ctx.WriteBuffer(released_buffers);
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push(count);
@@ -200,6 +195,7 @@ private:
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* event;
std::shared_ptr<AudioCore::AudioIn::In> impl;
+ Common::ScratchBuffer<u64> tmp_buffer;
};
AudInU::AudInU(Core::System& system_)
diff --git a/src/core/hle/service/audio/audout_u.cpp b/src/core/hle/service/audio/audout_u.cpp
index 3e62fa4fc..032c8c11f 100644
--- a/src/core/hle/service/audio/audout_u.cpp
+++ b/src/core/hle/service/audio/audout_u.cpp
@@ -123,19 +123,13 @@ private:
void GetReleasedAudioOutBuffers(HLERequestContext& ctx) {
const auto write_buffer_size = ctx.GetWriteBufferNumElements<u64>();
- std::vector<u64> released_buffers(write_buffer_size);
+ tmp_buffer.resize_destructive(write_buffer_size);
+ tmp_buffer[0] = 0;
- const auto count = impl->GetReleasedBuffers(released_buffers);
+ const auto count = impl->GetReleasedBuffers(tmp_buffer);
- [[maybe_unused]] std::string tags{};
- for (u32 i = 0; i < count; i++) {
- tags += fmt::format("{:08X}, ", released_buffers[i]);
- }
- [[maybe_unused]] const auto sessionid{impl->GetSystem().GetSessionId()};
- LOG_TRACE(Service_Audio, "called. Session {} released {} buffers: {}", sessionid, count,
- tags);
+ ctx.WriteBuffer(tmp_buffer);
- ctx.WriteBuffer(released_buffers);
IPC::ResponseBuilder rb{ctx, 3};
rb.Push(ResultSuccess);
rb.Push(count);
@@ -211,6 +205,7 @@ private:
KernelHelpers::ServiceContext service_context;
Kernel::KEvent* event;
std::shared_ptr<AudioCore::AudioOut::Out> impl;
+ Common::ScratchBuffer<u64> tmp_buffer;
};
AudOutU::AudOutU(Core::System& system_)
diff --git a/src/core/hle/service/audio/audren_u.cpp b/src/core/hle/service/audio/audren_u.cpp
index 7086d4750..12845c23a 100644
--- a/src/core/hle/service/audio/audren_u.cpp
+++ b/src/core/hle/service/audio/audren_u.cpp
@@ -116,28 +116,26 @@ private:
// These buffers are written manually to avoid an issue with WriteBuffer throwing errors for
// checking size 0. Performance size is 0 for most games.
- std::vector<u8> output{};
- std::vector<u8> performance{};
auto is_buffer_b{ctx.BufferDescriptorB()[0].Size() != 0};
if (is_buffer_b) {
const auto buffersB{ctx.BufferDescriptorB()};
- output.resize(buffersB[0].Size(), 0);
- performance.resize(buffersB[1].Size(), 0);
+ tmp_output.resize_destructive(buffersB[0].Size());
+ tmp_performance.resize_destructive(buffersB[1].Size());
} else {
const auto buffersC{ctx.BufferDescriptorC()};
- output.resize(buffersC[0].Size(), 0);
- performance.resize(buffersC[1].Size(), 0);
+ tmp_output.resize_destructive(buffersC[0].Size());
+ tmp_performance.resize_destructive(buffersC[1].Size());
}
- auto result = impl->RequestUpdate(input, performance, output);
+ auto result = impl->RequestUpdate(input, tmp_performance, tmp_output);
if (result.IsSuccess()) {
if (is_buffer_b) {
- ctx.WriteBufferB(output.data(), output.size(), 0);
- ctx.WriteBufferB(performance.data(), performance.size(), 1);
+ ctx.WriteBufferB(tmp_output.data(), tmp_output.size(), 0);
+ ctx.WriteBufferB(tmp_performance.data(), tmp_performance.size(), 1);
} else {
- ctx.WriteBufferC(output.data(), output.size(), 0);
- ctx.WriteBufferC(performance.data(), performance.size(), 1);
+ ctx.WriteBufferC(tmp_output.data(), tmp_output.size(), 0);
+ ctx.WriteBufferC(tmp_performance.data(), tmp_performance.size(), 1);
}
} else {
LOG_ERROR(Service_Audio, "RequestUpdate failed error 0x{:02X}!", result.description);
@@ -235,6 +233,8 @@ private:
Kernel::KEvent* rendered_event;
Manager& manager;
std::unique_ptr<Renderer> impl;
+ Common::ScratchBuffer<u8> tmp_output;
+ Common::ScratchBuffer<u8> tmp_performance;
};
class IAudioDevice final : public ServiceFramework<IAudioDevice> {
diff --git a/src/core/hle/service/audio/audren_u.h b/src/core/hle/service/audio/audren_u.h
index 24ce37e87..d8e9c8719 100644
--- a/src/core/hle/service/audio/audren_u.h
+++ b/src/core/hle/service/audio/audren_u.h
@@ -4,6 +4,7 @@
#pragma once
#include "audio_core/audio_render_manager.h"
+#include "common/scratch_buffer.h"
#include "core/hle/service/kernel_helpers.h"
#include "core/hle/service/service.h"
diff --git a/src/core/hle/service/audio/hwopus.cpp b/src/core/hle/service/audio/hwopus.cpp
index 451ac224a..c835f6cb7 100644
--- a/src/core/hle/service/audio/hwopus.cpp
+++ b/src/core/hle/service/audio/hwopus.cpp
@@ -68,13 +68,13 @@ private:
ExtraBehavior extra_behavior) {
u32 consumed = 0;
u32 sample_count = 0;
- std::vector<opus_int16> samples(ctx.GetWriteBufferNumElements<opus_int16>());
+ tmp_samples.resize_destructive(ctx.GetWriteBufferNumElements<opus_int16>());
if (extra_behavior == ExtraBehavior::ResetContext) {
ResetDecoderContext();
}
- if (!DecodeOpusData(consumed, sample_count, ctx.ReadBuffer(), samples, performance)) {
+ if (!DecodeOpusData(consumed, sample_count, ctx.ReadBuffer(), tmp_samples, performance)) {
LOG_ERROR(Audio, "Failed to decode opus data");
IPC::ResponseBuilder rb{ctx, 2};
// TODO(ogniK): Use correct error code
@@ -90,11 +90,11 @@ private:
if (performance) {
rb.Push<u64>(*performance);
}
- ctx.WriteBuffer(samples);
+ ctx.WriteBuffer(tmp_samples);
}
bool DecodeOpusData(u32& consumed, u32& sample_count, std::span<const u8> input,
- std::vector<opus_int16>& output, u64* out_performance_time) const {
+ std::span<opus_int16> output, u64* out_performance_time) const {
const auto start_time = std::chrono::steady_clock::now();
const std::size_t raw_output_sz = output.size() * sizeof(opus_int16);
if (sizeof(OpusPacketHeader) > input.size()) {
@@ -154,6 +154,7 @@ private:
OpusDecoderPtr decoder;
u32 sample_rate;
u32 channel_count;
+ Common::ScratchBuffer<opus_int16> tmp_samples;
};
class IHardwareOpusDecoderManager final : public ServiceFramework<IHardwareOpusDecoderManager> {
diff --git a/src/core/hle/service/hid/hidbus.cpp b/src/core/hle/service/hid/hidbus.cpp
index 5604a6fda..80aac221b 100644
--- a/src/core/hle/service/hid/hidbus.cpp
+++ b/src/core/hle/service/hid/hidbus.cpp
@@ -5,7 +5,6 @@
#include "common/settings.h"
#include "core/core.h"
#include "core/core_timing.h"
-#include "core/core_timing_util.h"
#include "core/hid/hid_types.h"
#include "core/hle/kernel/k_event.h"
#include "core/hle/kernel/k_readable_event.h"
diff --git a/src/core/hle/service/nfc/common/device.cpp b/src/core/hle/service/nfc/common/device.cpp
index f4b180b06..5bf289818 100644
--- a/src/core/hle/service/nfc/common/device.cpp
+++ b/src/core/hle/service/nfc/common/device.cpp
@@ -93,7 +93,8 @@ void NfcDevice::NpadUpdate(Core::HID::ControllerTriggerType type) {
const auto nfc_status = npad_device->GetNfc();
switch (nfc_status.state) {
case Common::Input::NfcState::NewAmiibo:
- LoadNfcTag(nfc_status.data);
+ LoadNfcTag(nfc_status.protocol, nfc_status.tag_type, nfc_status.uuid_length,
+ nfc_status.uuid);
break;
case Common::Input::NfcState::AmiiboRemoved:
if (device_state == DeviceState::Initialized || device_state == DeviceState::TagRemoved) {
@@ -108,28 +109,46 @@ void NfcDevice::NpadUpdate(Core::HID::ControllerTriggerType type) {
}
}
-bool NfcDevice::LoadNfcTag(std::span<const u8> data) {
+bool NfcDevice::LoadNfcTag(u8 protocol, u8 tag_type, u8 uuid_length, UniqueSerialNumber uuid) {
if (device_state != DeviceState::SearchingForTag) {
LOG_ERROR(Service_NFC, "Game is not looking for nfc tag, current state {}", device_state);
return false;
}
+ if ((protocol & static_cast<u8>(allowed_protocols)) == 0) {
+ LOG_ERROR(Service_NFC, "Protocol not supported {}", protocol);
+ return false;
+ }
+
+ real_tag_info = {
+ .uuid = uuid,
+ .uuid_length = uuid_length,
+ .protocol = static_cast<NfcProtocol>(protocol),
+ .tag_type = static_cast<TagType>(tag_type),
+ };
+
+ device_state = DeviceState::TagFound;
+ deactivate_event->GetReadableEvent().Clear();
+ activate_event->Signal();
+ return true;
+}
+
+bool NfcDevice::LoadAmiiboData() {
+ std::vector<u8> data{};
+
+ if (!npad_device->ReadAmiiboData(data)) {
+ return false;
+ }
+
if (data.size() < sizeof(NFP::EncryptedNTAG215File)) {
LOG_ERROR(Service_NFC, "Not an amiibo, size={}", data.size());
return false;
}
- mifare_data.resize(data.size());
- memcpy(mifare_data.data(), data.data(), data.size());
-
memcpy(&tag_data, data.data(), sizeof(NFP::EncryptedNTAG215File));
is_plain_amiibo = NFP::AmiiboCrypto::IsAmiiboValid(tag_data);
is_write_protected = false;
- device_state = DeviceState::TagFound;
- deactivate_event->GetReadableEvent().Clear();
- activate_event->Signal();
-
// Fallback for plain amiibos
if (is_plain_amiibo) {
LOG_INFO(Service_NFP, "Using plain amiibo");
@@ -147,6 +166,7 @@ bool NfcDevice::LoadNfcTag(std::span<const u8> data) {
return true;
}
+ LOG_INFO(Service_NFP, "Using encrypted amiibo");
tag_data = {};
memcpy(&encrypted_tag_data, data.data(), sizeof(NFP::EncryptedNTAG215File));
return true;
@@ -162,7 +182,6 @@ void NfcDevice::CloseNfcTag() {
device_state = DeviceState::TagRemoved;
encrypted_tag_data = {};
tag_data = {};
- mifare_data = {};
activate_event->GetReadableEvent().Clear();
deactivate_event->Signal();
}
@@ -179,8 +198,12 @@ void NfcDevice::Initialize() {
device_state = npad_device->HasNfc() ? DeviceState::Initialized : DeviceState::Unavailable;
encrypted_tag_data = {};
tag_data = {};
- mifare_data = {};
- is_initalized = true;
+
+ if (device_state != DeviceState::Initialized) {
+ return;
+ }
+
+ is_initalized = npad_device->AddNfcHandle();
}
void NfcDevice::Finalize() {
@@ -190,6 +213,11 @@ void NfcDevice::Finalize() {
if (device_state == DeviceState::SearchingForTag || device_state == DeviceState::TagRemoved) {
StopDetection();
}
+
+ if (device_state != DeviceState::Unavailable) {
+ npad_device->RemoveNfcHandle();
+ }
+
device_state = DeviceState::Unavailable;
is_initalized = false;
}
@@ -200,10 +228,8 @@ Result NfcDevice::StartDetection(NfcProtocol allowed_protocol) {
return ResultWrongDeviceState;
}
- if (npad_device->SetPollingMode(Core::HID::EmulatedDeviceIndex::RightIndex,
- Common::Input::PollingMode::NFC) !=
- Common::Input::DriverResult::Success) {
- LOG_ERROR(Service_NFC, "Nfc not supported");
+ if (!npad_device->StartNfcPolling()) {
+ LOG_ERROR(Service_NFC, "Nfc polling not supported");
return ResultNfcDisabled;
}
@@ -213,9 +239,6 @@ Result NfcDevice::StartDetection(NfcProtocol allowed_protocol) {
}
Result NfcDevice::StopDetection() {
- npad_device->SetPollingMode(Core::HID::EmulatedDeviceIndex::RightIndex,
- Common::Input::PollingMode::Active);
-
if (device_state == DeviceState::Initialized) {
return ResultSuccess;
}
@@ -225,6 +248,7 @@ Result NfcDevice::StopDetection() {
}
if (device_state == DeviceState::SearchingForTag || device_state == DeviceState::TagRemoved) {
+ npad_device->StopNfcPolling();
device_state = DeviceState::Initialized;
return ResultSuccess;
}
@@ -233,7 +257,7 @@ Result NfcDevice::StopDetection() {
return ResultWrongDeviceState;
}
-Result NfcDevice::GetTagInfo(NFP::TagInfo& tag_info, bool is_mifare) const {
+Result NfcDevice::GetTagInfo(NFP::TagInfo& tag_info) const {
if (device_state != DeviceState::TagFound && device_state != DeviceState::TagMounted) {
LOG_ERROR(Service_NFC, "Wrong device state {}", device_state);
if (device_state == DeviceState::TagRemoved) {
@@ -242,41 +266,15 @@ Result NfcDevice::GetTagInfo(NFP::TagInfo& tag_info, bool is_mifare) const {
return ResultWrongDeviceState;
}
- UniqueSerialNumber uuid{};
- u8 uuid_length{};
- NfcProtocol protocol{NfcProtocol::TypeA};
- TagType tag_type{TagType::Type2};
-
- if (is_mifare) {
- tag_type = TagType::Mifare;
- uuid_length = sizeof(NFP::NtagTagUuid);
- memcpy(uuid.data(), mifare_data.data(), uuid_length);
- } else {
- tag_type = TagType::Type2;
- uuid_length = sizeof(NFP::NtagTagUuid);
- NFP::NtagTagUuid nUuid{
- .part1 = encrypted_tag_data.uuid.part1,
- .part2 = encrypted_tag_data.uuid.part2,
- .nintendo_id = encrypted_tag_data.uuid.nintendo_id,
- };
- memcpy(uuid.data(), &nUuid, uuid_length);
+ tag_info = real_tag_info;
- // Generate random UUID to bypass amiibo load limits
- if (Settings::values.random_amiibo_id) {
- Common::TinyMT rng{};
- rng.Initialize(static_cast<u32>(GetCurrentPosixTime()));
- rng.GenerateRandomBytes(uuid.data(), uuid_length);
- }
+ // Generate random UUID to bypass amiibo load limits
+ if (real_tag_info.tag_type == TagType::Type2 && Settings::values.random_amiibo_id) {
+ Common::TinyMT rng{};
+ rng.Initialize(static_cast<u32>(GetCurrentPosixTime()));
+ rng.GenerateRandomBytes(tag_info.uuid.data(), tag_info.uuid_length);
}
- // Protocol and tag type may change here
- tag_info = {
- .uuid = uuid,
- .uuid_length = uuid_length,
- .protocol = protocol,
- .tag_type = tag_type,
- };
-
return ResultSuccess;
}
@@ -293,7 +291,7 @@ Result NfcDevice::ReadMifare(std::span<const MifareReadBlockParameter> parameter
Result result = ResultSuccess;
TagInfo tag_info{};
- result = GetTagInfo(tag_info, true);
+ result = GetTagInfo(tag_info);
if (result.IsError()) {
return result;
@@ -307,6 +305,8 @@ Result NfcDevice::ReadMifare(std::span<const MifareReadBlockParameter> parameter
return ResultInvalidArgument;
}
+ Common::Input::MifareRequest request{};
+ Common::Input::MifareRequest out_data{};
const auto unknown = parameters[0].sector_key.unknown;
for (std::size_t i = 0; i < parameters.size(); i++) {
if (unknown != parameters[i].sector_key.unknown) {
@@ -315,25 +315,29 @@ Result NfcDevice::ReadMifare(std::span<const MifareReadBlockParameter> parameter
}
for (std::size_t i = 0; i < parameters.size(); i++) {
- result = ReadMifare(parameters[i], read_block_data[i]);
- if (result.IsError()) {
- break;
+ if (parameters[i].sector_key.command == MifareCmd::None) {
+ continue;
}
+ request.data[i].command = static_cast<u8>(parameters[i].sector_key.command);
+ request.data[i].sector = parameters[i].sector_number;
+ memcpy(request.data[i].key.data(), parameters[i].sector_key.sector_key.data(),
+ sizeof(KeyData));
}
- return result;
-}
-
-Result NfcDevice::ReadMifare(const MifareReadBlockParameter& parameter,
- MifareReadBlockData& read_block_data) const {
- const std::size_t sector_index = parameter.sector_number * sizeof(DataBlock);
- read_block_data.sector_number = parameter.sector_number;
- if (mifare_data.size() < sector_index + sizeof(DataBlock)) {
+ if (!npad_device->ReadMifareData(request, out_data)) {
return ResultMifareError288;
}
- // TODO: Use parameter.sector_key to read encrypted data
- memcpy(read_block_data.data.data(), mifare_data.data() + sector_index, sizeof(DataBlock));
+ for (std::size_t i = 0; i < read_block_data.size(); i++) {
+ if (static_cast<MifareCmd>(out_data.data[i].command) == MifareCmd::None) {
+ continue;
+ }
+
+ read_block_data[i] = {
+ .data = out_data.data[i].data,
+ .sector_number = out_data.data[i].sector,
+ };
+ }
return ResultSuccess;
}
@@ -342,7 +346,7 @@ Result NfcDevice::WriteMifare(std::span<const MifareWriteBlockParameter> paramet
Result result = ResultSuccess;
TagInfo tag_info{};
- result = GetTagInfo(tag_info, true);
+ result = GetTagInfo(tag_info);
if (result.IsError()) {
return result;
@@ -363,42 +367,25 @@ Result NfcDevice::WriteMifare(std::span<const MifareWriteBlockParameter> paramet
}
}
+ Common::Input::MifareRequest request{};
for (std::size_t i = 0; i < parameters.size(); i++) {
- result = WriteMifare(parameters[i]);
- if (result.IsError()) {
- break;
+ if (parameters[i].sector_key.command == MifareCmd::None) {
+ continue;
}
+ request.data[i].command = static_cast<u8>(parameters[i].sector_key.command);
+ request.data[i].sector = parameters[i].sector_number;
+ memcpy(request.data[i].key.data(), parameters[i].sector_key.sector_key.data(),
+ sizeof(KeyData));
+ memcpy(request.data[i].data.data(), parameters[i].data.data(), sizeof(KeyData));
}
- if (!npad_device->WriteNfc(mifare_data)) {
- LOG_ERROR(Service_NFP, "Error writing to file");
+ if (!npad_device->WriteMifareData(request)) {
return ResultMifareError288;
}
return result;
}
-Result NfcDevice::WriteMifare(const MifareWriteBlockParameter& parameter) {
- const std::size_t sector_index = parameter.sector_number * sizeof(DataBlock);
-
- if (device_state != DeviceState::TagFound && device_state != DeviceState::TagMounted) {
- LOG_ERROR(Service_NFC, "Wrong device state {}", device_state);
- if (device_state == DeviceState::TagRemoved) {
- return ResultTagRemoved;
- }
- return ResultWrongDeviceState;
- }
-
- if (mifare_data.size() < sector_index + sizeof(DataBlock)) {
- return ResultMifareError288;
- }
-
- // TODO: Use parameter.sector_key to encrypt the data
- memcpy(mifare_data.data() + sector_index, parameter.data.data(), sizeof(DataBlock));
-
- return ResultSuccess;
-}
-
Result NfcDevice::SendCommandByPassThrough(const Time::Clock::TimeSpanType& timeout,
std::span<const u8> command_data,
std::span<u8> out_data) {
@@ -412,6 +399,11 @@ Result NfcDevice::Mount(NFP::ModelType model_type, NFP::MountTarget mount_target
return ResultWrongDeviceState;
}
+ if (!LoadAmiiboData()) {
+ LOG_ERROR(Service_NFP, "Not an amiibo");
+ return ResultInvalidTagType;
+ }
+
if (!NFP::AmiiboCrypto::IsAmiiboValid(encrypted_tag_data)) {
LOG_ERROR(Service_NFP, "Not an amiibo");
return ResultInvalidTagType;
@@ -562,7 +554,7 @@ Result NfcDevice::Restore() {
NFC::TagInfo tag_info{};
std::array<u8, sizeof(NFP::EncryptedNTAG215File)> data{};
- Result result = GetTagInfo(tag_info, false);
+ Result result = GetTagInfo(tag_info);
if (result.IsError()) {
return result;
@@ -635,7 +627,7 @@ Result NfcDevice::GetCommonInfo(NFP::CommonInfo& common_info) const {
// TODO: Validate this data
common_info = {
.last_write_date = settings.write_date.GetWriteDate(),
- .write_counter = tag_data.write_counter,
+ .write_counter = tag_data.application_write_counter,
.version = tag_data.amiibo_version,
.application_area_size = sizeof(NFP::ApplicationArea),
};
diff --git a/src/core/hle/service/nfc/common/device.h b/src/core/hle/service/nfc/common/device.h
index 7560210d6..0ed1ff34c 100644
--- a/src/core/hle/service/nfc/common/device.h
+++ b/src/core/hle/service/nfc/common/device.h
@@ -42,15 +42,12 @@ public:
Result StartDetection(NfcProtocol allowed_protocol);
Result StopDetection();
- Result GetTagInfo(TagInfo& tag_info, bool is_mifare) const;
+ Result GetTagInfo(TagInfo& tag_info) const;
Result ReadMifare(std::span<const MifareReadBlockParameter> parameters,
std::span<MifareReadBlockData> read_block_data) const;
- Result ReadMifare(const MifareReadBlockParameter& parameter,
- MifareReadBlockData& read_block_data) const;
Result WriteMifare(std::span<const MifareWriteBlockParameter> parameters);
- Result WriteMifare(const MifareWriteBlockParameter& parameter);
Result SendCommandByPassThrough(const Time::Clock::TimeSpanType& timeout,
std::span<const u8> command_data, std::span<u8> out_data);
@@ -105,7 +102,8 @@ public:
private:
void NpadUpdate(Core::HID::ControllerTriggerType type);
- bool LoadNfcTag(std::span<const u8> data);
+ bool LoadNfcTag(u8 protocol, u8 tag_type, u8 uuid_length, UniqueSerialNumber uuid);
+ bool LoadAmiiboData();
void CloseNfcTag();
NFP::AmiiboName GetAmiiboName(const NFP::AmiiboSettings& settings) const;
@@ -140,8 +138,8 @@ private:
bool is_write_protected{};
NFP::MountTarget mount_target{NFP::MountTarget::None};
+ TagInfo real_tag_info{};
NFP::NTAG215File tag_data{};
- std::vector<u8> mifare_data{};
NFP::EncryptedNTAG215File encrypted_tag_data{};
};
diff --git a/src/core/hle/service/nfc/common/device_manager.cpp b/src/core/hle/service/nfc/common/device_manager.cpp
index b0456508e..562f3a28e 100644
--- a/src/core/hle/service/nfc/common/device_manager.cpp
+++ b/src/core/hle/service/nfc/common/device_manager.cpp
@@ -29,6 +29,9 @@ DeviceManager::DeviceManager(Core::System& system_, KernelHelpers::ServiceContex
}
DeviceManager ::~DeviceManager() {
+ if (is_initialized) {
+ Finalize();
+ }
service_context.CloseEvent(availability_change_event);
}
@@ -125,14 +128,14 @@ Result DeviceManager::StopDetection(u64 device_handle) {
return result;
}
-Result DeviceManager::GetTagInfo(u64 device_handle, TagInfo& tag_info, bool is_mifare) const {
+Result DeviceManager::GetTagInfo(u64 device_handle, TagInfo& tag_info) const {
std::scoped_lock lock{mutex};
std::shared_ptr<NfcDevice> device = nullptr;
auto result = GetDeviceHandle(device_handle, device);
if (result.IsSuccess()) {
- result = device->GetTagInfo(tag_info, is_mifare);
+ result = device->GetTagInfo(tag_info);
result = VerifyDeviceResult(device, result);
}
@@ -546,7 +549,7 @@ Result DeviceManager::ReadBackupData(u64 device_handle, std::span<u8> data) cons
NFC::TagInfo tag_info{};
if (result.IsSuccess()) {
- result = device->GetTagInfo(tag_info, false);
+ result = device->GetTagInfo(tag_info);
}
if (result.IsSuccess()) {
@@ -565,7 +568,7 @@ Result DeviceManager::WriteBackupData(u64 device_handle, std::span<const u8> dat
NFC::TagInfo tag_info{};
if (result.IsSuccess()) {
- result = device->GetTagInfo(tag_info, false);
+ result = device->GetTagInfo(tag_info);
}
if (result.IsSuccess()) {
diff --git a/src/core/hle/service/nfc/common/device_manager.h b/src/core/hle/service/nfc/common/device_manager.h
index 2971e280f..c61ba0cf3 100644
--- a/src/core/hle/service/nfc/common/device_manager.h
+++ b/src/core/hle/service/nfc/common/device_manager.h
@@ -33,7 +33,7 @@ public:
Kernel::KReadableEvent& AttachAvailabilityChangeEvent() const;
Result StartDetection(u64 device_handle, NfcProtocol tag_protocol);
Result StopDetection(u64 device_handle);
- Result GetTagInfo(u64 device_handle, NFP::TagInfo& tag_info, bool is_mifare) const;
+ Result GetTagInfo(u64 device_handle, NFP::TagInfo& tag_info) const;
Kernel::KReadableEvent& AttachActivateEvent(u64 device_handle) const;
Kernel::KReadableEvent& AttachDeactivateEvent(u64 device_handle) const;
Result ReadMifare(u64 device_handle,
diff --git a/src/core/hle/service/nfc/mifare_types.h b/src/core/hle/service/nfc/mifare_types.h
index 75b59f021..467937399 100644
--- a/src/core/hle/service/nfc/mifare_types.h
+++ b/src/core/hle/service/nfc/mifare_types.h
@@ -11,9 +11,10 @@
namespace Service::NFC {
enum class MifareCmd : u8 {
+ None = 0x00,
+ Read = 0x30,
AuthA = 0x60,
AuthB = 0x61,
- Read = 0x30,
Write = 0xA0,
Transfer = 0xB0,
Decrement = 0xC0,
@@ -35,17 +36,17 @@ static_assert(sizeof(SectorKey) == 0x10, "SectorKey is an invalid size");
// This is nn::nfc::MifareReadBlockParameter
struct MifareReadBlockParameter {
- u8 sector_number;
+ u8 sector_number{};
INSERT_PADDING_BYTES(0x7);
- SectorKey sector_key;
+ SectorKey sector_key{};
};
static_assert(sizeof(MifareReadBlockParameter) == 0x18,
"MifareReadBlockParameter is an invalid size");
// This is nn::nfc::MifareReadBlockData
struct MifareReadBlockData {
- DataBlock data;
- u8 sector_number;
+ DataBlock data{};
+ u8 sector_number{};
INSERT_PADDING_BYTES(0x7);
};
static_assert(sizeof(MifareReadBlockData) == 0x18, "MifareReadBlockData is an invalid size");
diff --git a/src/core/hle/service/nfc/nfc_interface.cpp b/src/core/hle/service/nfc/nfc_interface.cpp
index 130fb7f78..e7ca7582e 100644
--- a/src/core/hle/service/nfc/nfc_interface.cpp
+++ b/src/core/hle/service/nfc/nfc_interface.cpp
@@ -174,8 +174,7 @@ void NfcInterface::GetTagInfo(HLERequestContext& ctx) {
LOG_INFO(Service_NFC, "called, device_handle={}", device_handle);
TagInfo tag_info{};
- auto result =
- GetManager()->GetTagInfo(device_handle, tag_info, backend_type == BackendType::Mifare);
+ auto result = GetManager()->GetTagInfo(device_handle, tag_info);
result = TranslateResultToServiceError(result);
if (result.IsSuccess()) {
@@ -216,8 +215,8 @@ void NfcInterface::ReadMifare(HLERequestContext& ctx) {
memcpy(read_commands.data(), buffer.data(),
number_of_commands * sizeof(MifareReadBlockParameter));
- LOG_INFO(Service_NFC, "(STUBBED) called, device_handle={}, read_commands_size={}",
- device_handle, number_of_commands);
+ LOG_INFO(Service_NFC, "called, device_handle={}, read_commands_size={}", device_handle,
+ number_of_commands);
std::vector<MifareReadBlockData> out_data(number_of_commands);
auto result = GetManager()->ReadMifare(device_handle, read_commands, out_data);
diff --git a/src/core/hle/service/nvdrv/devices/nvdevice.h b/src/core/hle/service/nvdrv/devices/nvdevice.h
index ab1f30f9e..a04538d5d 100644
--- a/src/core/hle/service/nvdrv/devices/nvdevice.h
+++ b/src/core/hle/service/nvdrv/devices/nvdevice.h
@@ -34,7 +34,7 @@ public:
* @returns The result code of the ioctl.
*/
virtual NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) = 0;
+ std::span<u8> output) = 0;
/**
* Handles an ioctl2 request.
@@ -45,7 +45,7 @@ public:
* @returns The result code of the ioctl.
*/
virtual NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) = 0;
+ std::span<const u8> inline_input, std::span<u8> output) = 0;
/**
* Handles an ioctl3 request.
@@ -56,7 +56,7 @@ public:
* @returns The result code of the ioctl.
*/
virtual NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) = 0;
+ std::span<u8> output, std::span<u8> inline_output) = 0;
/**
* Called once a device is opened
diff --git a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
index 5a5b2e305..05a43d8dc 100644
--- a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.cpp
@@ -18,19 +18,19 @@ nvdisp_disp0::nvdisp_disp0(Core::System& system_, NvCore::Container& core)
nvdisp_disp0::~nvdisp_disp0() = default;
NvResult nvdisp_disp0::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvdisp_disp0::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvdisp_disp0::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
@@ -51,8 +51,8 @@ void nvdisp_disp0::flip(u32 buffer_handle, u32 offset, android::PixelFormat form
stride, format, transform, crop_rect};
system.GPU().RequestSwapBuffers(&framebuffer, fences, num_fences);
- system.GetPerfStats().EndSystemFrame();
system.SpeedLimiter().DoSpeedLimiting(system.CoreTiming().GetGlobalTimeUs());
+ system.GetPerfStats().EndSystemFrame();
system.GetPerfStats().BeginSystemFrame();
}
diff --git a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h
index bcd0e3ed5..daee05fe8 100644
--- a/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h
+++ b/src/core/hle/service/nvdrv/devices/nvdisp_disp0.h
@@ -26,11 +26,11 @@ public:
~nvdisp_disp0() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
index 681bd0867..07e570a9f 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.cpp
@@ -28,7 +28,7 @@ nvhost_as_gpu::nvhost_as_gpu(Core::System& system_, Module& module_, NvCore::Con
nvhost_as_gpu::~nvhost_as_gpu() = default;
NvResult nvhost_as_gpu::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 'A':
switch (command.cmd) {
@@ -61,13 +61,13 @@ NvResult nvhost_as_gpu::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> i
}
NvResult nvhost_as_gpu::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvhost_as_gpu::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
switch (command.group) {
case 'A':
switch (command.cmd) {
@@ -87,7 +87,7 @@ NvResult nvhost_as_gpu::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> i
void nvhost_as_gpu::OnOpen(DeviceFD fd) {}
void nvhost_as_gpu::OnClose(DeviceFD fd) {}
-NvResult nvhost_as_gpu::AllocAsEx(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::AllocAsEx(std::span<const u8> input, std::span<u8> output) {
IoctlAllocAsEx params{};
std::memcpy(&params, input.data(), input.size());
@@ -141,7 +141,7 @@ NvResult nvhost_as_gpu::AllocAsEx(std::span<const u8> input, std::vector<u8>& ou
return NvResult::Success;
}
-NvResult nvhost_as_gpu::AllocateSpace(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::AllocateSpace(std::span<const u8> input, std::span<u8> output) {
IoctlAllocSpace params{};
std::memcpy(&params, input.data(), input.size());
@@ -220,7 +220,7 @@ void nvhost_as_gpu::FreeMappingLocked(u64 offset) {
mapping_map.erase(offset);
}
-NvResult nvhost_as_gpu::FreeSpace(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::FreeSpace(std::span<const u8> input, std::span<u8> output) {
IoctlFreeSpace params{};
std::memcpy(&params, input.data(), input.size());
@@ -266,15 +266,14 @@ NvResult nvhost_as_gpu::FreeSpace(std::span<const u8> input, std::vector<u8>& ou
return NvResult::Success;
}
-NvResult nvhost_as_gpu::Remap(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::Remap(std::span<const u8> input, std::span<u8> output) {
const auto num_entries = input.size() / sizeof(IoctlRemapEntry);
LOG_DEBUG(Service_NVDRV, "called, num_entries=0x{:X}", num_entries);
- std::vector<IoctlRemapEntry> entries(num_entries);
- std::memcpy(entries.data(), input.data(), input.size());
-
std::scoped_lock lock(mutex);
+ entries.resize_destructive(num_entries);
+ std::memcpy(entries.data(), input.data(), input.size());
if (!vm.initialised) {
return NvResult::BadValue;
@@ -320,7 +319,7 @@ NvResult nvhost_as_gpu::Remap(std::span<const u8> input, std::vector<u8>& output
return NvResult::Success;
}
-NvResult nvhost_as_gpu::MapBufferEx(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::MapBufferEx(std::span<const u8> input, std::span<u8> output) {
IoctlMapBufferEx params{};
std::memcpy(&params, input.data(), input.size());
@@ -424,7 +423,7 @@ NvResult nvhost_as_gpu::MapBufferEx(std::span<const u8> input, std::vector<u8>&
return NvResult::Success;
}
-NvResult nvhost_as_gpu::UnmapBuffer(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::UnmapBuffer(std::span<const u8> input, std::span<u8> output) {
IoctlUnmapBuffer params{};
std::memcpy(&params, input.data(), input.size());
@@ -463,7 +462,7 @@ NvResult nvhost_as_gpu::UnmapBuffer(std::span<const u8> input, std::vector<u8>&
return NvResult::Success;
}
-NvResult nvhost_as_gpu::BindChannel(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::BindChannel(std::span<const u8> input, std::span<u8> output) {
IoctlBindChannel params{};
std::memcpy(&params, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "called, fd={:X}", params.fd);
@@ -492,7 +491,7 @@ void nvhost_as_gpu::GetVARegionsImpl(IoctlGetVaRegions& params) {
};
}
-NvResult nvhost_as_gpu::GetVARegions(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_as_gpu::GetVARegions(std::span<const u8> input, std::span<u8> output) {
IoctlGetVaRegions params{};
std::memcpy(&params, input.data(), input.size());
@@ -511,8 +510,8 @@ NvResult nvhost_as_gpu::GetVARegions(std::span<const u8> input, std::vector<u8>&
return NvResult::Success;
}
-NvResult nvhost_as_gpu::GetVARegions(std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) {
+NvResult nvhost_as_gpu::GetVARegions(std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) {
IoctlGetVaRegions params{};
std::memcpy(&params, input.data(), input.size());
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
index 1aba8d579..2af3e1260 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_as_gpu.h
@@ -15,6 +15,7 @@
#include "common/address_space.h"
#include "common/common_funcs.h"
#include "common/common_types.h"
+#include "common/scratch_buffer.h"
#include "common/swap.h"
#include "core/hle/service/nvdrv/core/nvmap.h"
#include "core/hle/service/nvdrv/devices/nvdevice.h"
@@ -48,11 +49,11 @@ public:
~nvhost_as_gpu() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
@@ -138,18 +139,18 @@ private:
static_assert(sizeof(IoctlGetVaRegions) == 16 + sizeof(VaRegion) * 2,
"IoctlGetVaRegions is incorrect size");
- NvResult AllocAsEx(std::span<const u8> input, std::vector<u8>& output);
- NvResult AllocateSpace(std::span<const u8> input, std::vector<u8>& output);
- NvResult Remap(std::span<const u8> input, std::vector<u8>& output);
- NvResult MapBufferEx(std::span<const u8> input, std::vector<u8>& output);
- NvResult UnmapBuffer(std::span<const u8> input, std::vector<u8>& output);
- NvResult FreeSpace(std::span<const u8> input, std::vector<u8>& output);
- NvResult BindChannel(std::span<const u8> input, std::vector<u8>& output);
+ NvResult AllocAsEx(std::span<const u8> input, std::span<u8> output);
+ NvResult AllocateSpace(std::span<const u8> input, std::span<u8> output);
+ NvResult Remap(std::span<const u8> input, std::span<u8> output);
+ NvResult MapBufferEx(std::span<const u8> input, std::span<u8> output);
+ NvResult UnmapBuffer(std::span<const u8> input, std::span<u8> output);
+ NvResult FreeSpace(std::span<const u8> input, std::span<u8> output);
+ NvResult BindChannel(std::span<const u8> input, std::span<u8> output);
void GetVARegionsImpl(IoctlGetVaRegions& params);
- NvResult GetVARegions(std::span<const u8> input, std::vector<u8>& output);
- NvResult GetVARegions(std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output);
+ NvResult GetVARegions(std::span<const u8> input, std::span<u8> output);
+ NvResult GetVARegions(std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output);
void FreeMappingLocked(u64 offset);
@@ -212,6 +213,7 @@ private:
bool initialised{};
} vm;
std::shared_ptr<Tegra::MemoryManager> gmmu;
+ Common::ScratchBuffer<IoctlRemapEntry> entries;
// s32 channel{};
// u32 big_page_size{VM::DEFAULT_BIG_PAGE_SIZE};
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
index e12025560..4d55554b4 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.cpp
@@ -35,7 +35,7 @@ nvhost_ctrl::~nvhost_ctrl() {
}
NvResult nvhost_ctrl::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 0x0:
switch (command.cmd) {
@@ -64,13 +64,13 @@ NvResult nvhost_ctrl::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> inp
}
NvResult nvhost_ctrl::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvhost_ctrl::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_outpu) {
+ std::span<u8> output, std::span<u8> inline_outpu) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
@@ -79,7 +79,7 @@ void nvhost_ctrl::OnOpen(DeviceFD fd) {}
void nvhost_ctrl::OnClose(DeviceFD fd) {}
-NvResult nvhost_ctrl::NvOsGetConfigU32(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl::NvOsGetConfigU32(std::span<const u8> input, std::span<u8> output) {
IocGetConfigParams params{};
std::memcpy(&params, input.data(), sizeof(params));
LOG_TRACE(Service_NVDRV, "called, setting={}!{}", params.domain_str.data(),
@@ -87,7 +87,7 @@ NvResult nvhost_ctrl::NvOsGetConfigU32(std::span<const u8> input, std::vector<u8
return NvResult::ConfigVarNotFound; // Returns error on production mode
}
-NvResult nvhost_ctrl::IocCtrlEventWait(std::span<const u8> input, std::vector<u8>& output,
+NvResult nvhost_ctrl::IocCtrlEventWait(std::span<const u8> input, std::span<u8> output,
bool is_allocation) {
IocCtrlEventWaitParams params{};
std::memcpy(&params, input.data(), sizeof(params));
@@ -231,7 +231,7 @@ NvResult nvhost_ctrl::FreeEvent(u32 slot) {
return NvResult::Success;
}
-NvResult nvhost_ctrl::IocCtrlEventRegister(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl::IocCtrlEventRegister(std::span<const u8> input, std::span<u8> output) {
IocCtrlEventRegisterParams params{};
std::memcpy(&params, input.data(), sizeof(params));
const u32 event_id = params.user_event_id;
@@ -252,7 +252,7 @@ NvResult nvhost_ctrl::IocCtrlEventRegister(std::span<const u8> input, std::vecto
return NvResult::Success;
}
-NvResult nvhost_ctrl::IocCtrlEventUnregister(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl::IocCtrlEventUnregister(std::span<const u8> input, std::span<u8> output) {
IocCtrlEventUnregisterParams params{};
std::memcpy(&params, input.data(), sizeof(params));
const u32 event_id = params.user_event_id & 0x00FF;
@@ -262,8 +262,7 @@ NvResult nvhost_ctrl::IocCtrlEventUnregister(std::span<const u8> input, std::vec
return FreeEvent(event_id);
}
-NvResult nvhost_ctrl::IocCtrlEventUnregisterBatch(std::span<const u8> input,
- std::vector<u8>& output) {
+NvResult nvhost_ctrl::IocCtrlEventUnregisterBatch(std::span<const u8> input, std::span<u8> output) {
IocCtrlEventUnregisterBatchParams params{};
std::memcpy(&params, input.data(), sizeof(params));
u64 event_mask = params.user_events;
@@ -281,7 +280,7 @@ NvResult nvhost_ctrl::IocCtrlEventUnregisterBatch(std::span<const u8> input,
return NvResult::Success;
}
-NvResult nvhost_ctrl::IocCtrlClearEventWait(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl::IocCtrlClearEventWait(std::span<const u8> input, std::span<u8> output) {
IocCtrlEventClearParams params{};
std::memcpy(&params, input.data(), sizeof(params));
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h
index dd2e7888a..2efed4862 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl.h
@@ -26,11 +26,11 @@ public:
~nvhost_ctrl() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
@@ -186,13 +186,12 @@ private:
static_assert(sizeof(IocCtrlEventUnregisterBatchParams) == 8,
"IocCtrlEventKill is incorrect size");
- NvResult NvOsGetConfigU32(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocCtrlEventWait(std::span<const u8> input, std::vector<u8>& output,
- bool is_allocation);
- NvResult IocCtrlEventRegister(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocCtrlEventUnregister(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocCtrlEventUnregisterBatch(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocCtrlClearEventWait(std::span<const u8> input, std::vector<u8>& output);
+ NvResult NvOsGetConfigU32(std::span<const u8> input, std::span<u8> output);
+ NvResult IocCtrlEventWait(std::span<const u8> input, std::span<u8> output, bool is_allocation);
+ NvResult IocCtrlEventRegister(std::span<const u8> input, std::span<u8> output);
+ NvResult IocCtrlEventUnregister(std::span<const u8> input, std::span<u8> output);
+ NvResult IocCtrlEventUnregisterBatch(std::span<const u8> input, std::span<u8> output);
+ NvResult IocCtrlClearEventWait(std::span<const u8> input, std::span<u8> output);
NvResult FreeEvent(u32 slot);
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
index be3c083db..6081d92e9 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.cpp
@@ -22,7 +22,7 @@ nvhost_ctrl_gpu::~nvhost_ctrl_gpu() {
}
NvResult nvhost_ctrl_gpu::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 'G':
switch (command.cmd) {
@@ -54,13 +54,13 @@ NvResult nvhost_ctrl_gpu::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8>
}
NvResult nvhost_ctrl_gpu::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvhost_ctrl_gpu::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
switch (command.group) {
case 'G':
switch (command.cmd) {
@@ -82,7 +82,7 @@ NvResult nvhost_ctrl_gpu::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8>
void nvhost_ctrl_gpu::OnOpen(DeviceFD fd) {}
void nvhost_ctrl_gpu::OnClose(DeviceFD fd) {}
-NvResult nvhost_ctrl_gpu::GetCharacteristics(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::GetCharacteristics(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlCharacteristics params{};
std::memcpy(&params, input.data(), input.size());
@@ -127,8 +127,8 @@ NvResult nvhost_ctrl_gpu::GetCharacteristics(std::span<const u8> input, std::vec
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::GetCharacteristics(std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) {
+NvResult nvhost_ctrl_gpu::GetCharacteristics(std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlCharacteristics params{};
std::memcpy(&params, input.data(), input.size());
@@ -175,7 +175,7 @@ NvResult nvhost_ctrl_gpu::GetCharacteristics(std::span<const u8> input, std::vec
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::GetTPCMasks(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::GetTPCMasks(std::span<const u8> input, std::span<u8> output) {
IoctlGpuGetTpcMasksArgs params{};
std::memcpy(&params, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "called, mask_buffer_size=0x{:X}", params.mask_buffer_size);
@@ -186,8 +186,8 @@ NvResult nvhost_ctrl_gpu::GetTPCMasks(std::span<const u8> input, std::vector<u8>
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::GetTPCMasks(std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) {
+NvResult nvhost_ctrl_gpu::GetTPCMasks(std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) {
IoctlGpuGetTpcMasksArgs params{};
std::memcpy(&params, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "called, mask_buffer_size=0x{:X}", params.mask_buffer_size);
@@ -199,7 +199,7 @@ NvResult nvhost_ctrl_gpu::GetTPCMasks(std::span<const u8> input, std::vector<u8>
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::GetActiveSlotMask(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::GetActiveSlotMask(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlActiveSlotMask params{};
@@ -212,7 +212,7 @@ NvResult nvhost_ctrl_gpu::GetActiveSlotMask(std::span<const u8> input, std::vect
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::ZCullGetCtxSize(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::ZCullGetCtxSize(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlZcullGetCtxSize params{};
@@ -224,7 +224,7 @@ NvResult nvhost_ctrl_gpu::ZCullGetCtxSize(std::span<const u8> input, std::vector
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::ZCullGetInfo(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::ZCullGetInfo(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlNvgpuGpuZcullGetInfoArgs params{};
@@ -247,7 +247,7 @@ NvResult nvhost_ctrl_gpu::ZCullGetInfo(std::span<const u8> input, std::vector<u8
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::ZBCSetTable(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::ZBCSetTable(std::span<const u8> input, std::span<u8> output) {
LOG_WARNING(Service_NVDRV, "(STUBBED) called");
IoctlZbcSetTable params{};
@@ -263,7 +263,7 @@ NvResult nvhost_ctrl_gpu::ZBCSetTable(std::span<const u8> input, std::vector<u8>
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::ZBCQueryTable(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::ZBCQueryTable(std::span<const u8> input, std::span<u8> output) {
LOG_WARNING(Service_NVDRV, "(STUBBED) called");
IoctlZbcQueryTable params{};
@@ -273,7 +273,7 @@ NvResult nvhost_ctrl_gpu::ZBCQueryTable(std::span<const u8> input, std::vector<u
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::FlushL2(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::FlushL2(std::span<const u8> input, std::span<u8> output) {
LOG_WARNING(Service_NVDRV, "(STUBBED) called");
IoctlFlushL2 params{};
@@ -283,7 +283,7 @@ NvResult nvhost_ctrl_gpu::FlushL2(std::span<const u8> input, std::vector<u8>& ou
return NvResult::Success;
}
-NvResult nvhost_ctrl_gpu::GetGpuTime(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_ctrl_gpu::GetGpuTime(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlGetGpuTime params{};
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
index b9333d9d3..97995551c 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_ctrl_gpu.h
@@ -22,11 +22,11 @@ public:
~nvhost_ctrl_gpu() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
@@ -151,21 +151,21 @@ private:
};
static_assert(sizeof(IoctlGetGpuTime) == 0x10, "IoctlGetGpuTime is incorrect size");
- NvResult GetCharacteristics(std::span<const u8> input, std::vector<u8>& output);
- NvResult GetCharacteristics(std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output);
-
- NvResult GetTPCMasks(std::span<const u8> input, std::vector<u8>& output);
- NvResult GetTPCMasks(std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output);
-
- NvResult GetActiveSlotMask(std::span<const u8> input, std::vector<u8>& output);
- NvResult ZCullGetCtxSize(std::span<const u8> input, std::vector<u8>& output);
- NvResult ZCullGetInfo(std::span<const u8> input, std::vector<u8>& output);
- NvResult ZBCSetTable(std::span<const u8> input, std::vector<u8>& output);
- NvResult ZBCQueryTable(std::span<const u8> input, std::vector<u8>& output);
- NvResult FlushL2(std::span<const u8> input, std::vector<u8>& output);
- NvResult GetGpuTime(std::span<const u8> input, std::vector<u8>& output);
+ NvResult GetCharacteristics(std::span<const u8> input, std::span<u8> output);
+ NvResult GetCharacteristics(std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output);
+
+ NvResult GetTPCMasks(std::span<const u8> input, std::span<u8> output);
+ NvResult GetTPCMasks(std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output);
+
+ NvResult GetActiveSlotMask(std::span<const u8> input, std::span<u8> output);
+ NvResult ZCullGetCtxSize(std::span<const u8> input, std::span<u8> output);
+ NvResult ZCullGetInfo(std::span<const u8> input, std::span<u8> output);
+ NvResult ZBCSetTable(std::span<const u8> input, std::span<u8> output);
+ NvResult ZBCQueryTable(std::span<const u8> input, std::span<u8> output);
+ NvResult FlushL2(std::span<const u8> input, std::span<u8> output);
+ NvResult GetGpuTime(std::span<const u8> input, std::span<u8> output);
EventInterface& events_interface;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
index 453a965dc..46a25fcab 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.cpp
@@ -47,7 +47,7 @@ nvhost_gpu::~nvhost_gpu() {
}
NvResult nvhost_gpu::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 0x0:
switch (command.cmd) {
@@ -99,7 +99,7 @@ NvResult nvhost_gpu::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> inpu
};
NvResult nvhost_gpu::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
switch (command.group) {
case 'H':
switch (command.cmd) {
@@ -113,7 +113,7 @@ NvResult nvhost_gpu::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> inpu
}
NvResult nvhost_gpu::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
@@ -121,7 +121,7 @@ NvResult nvhost_gpu::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> inpu
void nvhost_gpu::OnOpen(DeviceFD fd) {}
void nvhost_gpu::OnClose(DeviceFD fd) {}
-NvResult nvhost_gpu::SetNVMAPfd(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::SetNVMAPfd(std::span<const u8> input, std::span<u8> output) {
IoctlSetNvmapFD params{};
std::memcpy(&params, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "called, fd={}", params.nvmap_fd);
@@ -130,7 +130,7 @@ NvResult nvhost_gpu::SetNVMAPfd(std::span<const u8> input, std::vector<u8>& outp
return NvResult::Success;
}
-NvResult nvhost_gpu::SetClientData(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::SetClientData(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlClientData params{};
@@ -139,7 +139,7 @@ NvResult nvhost_gpu::SetClientData(std::span<const u8> input, std::vector<u8>& o
return NvResult::Success;
}
-NvResult nvhost_gpu::GetClientData(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::GetClientData(std::span<const u8> input, std::span<u8> output) {
LOG_DEBUG(Service_NVDRV, "called");
IoctlClientData params{};
@@ -149,7 +149,7 @@ NvResult nvhost_gpu::GetClientData(std::span<const u8> input, std::vector<u8>& o
return NvResult::Success;
}
-NvResult nvhost_gpu::ZCullBind(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::ZCullBind(std::span<const u8> input, std::span<u8> output) {
std::memcpy(&zcull_params, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "called, gpu_va={:X}, mode={:X}", zcull_params.gpu_va,
zcull_params.mode);
@@ -158,7 +158,7 @@ NvResult nvhost_gpu::ZCullBind(std::span<const u8> input, std::vector<u8>& outpu
return NvResult::Success;
}
-NvResult nvhost_gpu::SetErrorNotifier(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::SetErrorNotifier(std::span<const u8> input, std::span<u8> output) {
IoctlSetErrorNotifier params{};
std::memcpy(&params, input.data(), input.size());
LOG_WARNING(Service_NVDRV, "(STUBBED) called, offset={:X}, size={:X}, mem={:X}", params.offset,
@@ -168,14 +168,14 @@ NvResult nvhost_gpu::SetErrorNotifier(std::span<const u8> input, std::vector<u8>
return NvResult::Success;
}
-NvResult nvhost_gpu::SetChannelPriority(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::SetChannelPriority(std::span<const u8> input, std::span<u8> output) {
std::memcpy(&channel_priority, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "(STUBBED) called, priority={:X}", channel_priority);
return NvResult::Success;
}
-NvResult nvhost_gpu::AllocGPFIFOEx2(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::AllocGPFIFOEx2(std::span<const u8> input, std::span<u8> output) {
IoctlAllocGpfifoEx2 params{};
std::memcpy(&params, input.data(), input.size());
LOG_WARNING(Service_NVDRV,
@@ -197,7 +197,7 @@ NvResult nvhost_gpu::AllocGPFIFOEx2(std::span<const u8> input, std::vector<u8>&
return NvResult::Success;
}
-NvResult nvhost_gpu::AllocateObjectContext(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::AllocateObjectContext(std::span<const u8> input, std::span<u8> output) {
IoctlAllocObjCtx params{};
std::memcpy(&params, input.data(), input.size());
LOG_WARNING(Service_NVDRV, "(STUBBED) called, class_num={:X}, flags={:X}", params.class_num,
@@ -208,7 +208,8 @@ NvResult nvhost_gpu::AllocateObjectContext(std::span<const u8> input, std::vecto
return NvResult::Success;
}
-static std::vector<Tegra::CommandHeader> BuildWaitCommandList(NvFence fence) {
+static boost::container::small_vector<Tegra::CommandHeader, 512> BuildWaitCommandList(
+ NvFence fence) {
return {
Tegra::BuildCommandHeader(Tegra::BufferMethods::SyncpointPayload, 1,
Tegra::SubmissionMode::Increasing),
@@ -219,35 +220,35 @@ static std::vector<Tegra::CommandHeader> BuildWaitCommandList(NvFence fence) {
};
}
-static std::vector<Tegra::CommandHeader> BuildIncrementCommandList(NvFence fence) {
- std::vector<Tegra::CommandHeader> result{
+static boost::container::small_vector<Tegra::CommandHeader, 512> BuildIncrementCommandList(
+ NvFence fence) {
+ boost::container::small_vector<Tegra::CommandHeader, 512> result{
Tegra::BuildCommandHeader(Tegra::BufferMethods::SyncpointPayload, 1,
Tegra::SubmissionMode::Increasing),
{}};
for (u32 count = 0; count < 2; ++count) {
- result.emplace_back(Tegra::BuildCommandHeader(Tegra::BufferMethods::SyncpointOperation, 1,
- Tegra::SubmissionMode::Increasing));
- result.emplace_back(
+ result.push_back(Tegra::BuildCommandHeader(Tegra::BufferMethods::SyncpointOperation, 1,
+ Tegra::SubmissionMode::Increasing));
+ result.push_back(
BuildFenceAction(Tegra::Engines::Puller::FenceOperation::Increment, fence.id));
}
return result;
}
-static std::vector<Tegra::CommandHeader> BuildIncrementWithWfiCommandList(NvFence fence) {
- std::vector<Tegra::CommandHeader> result{
+static boost::container::small_vector<Tegra::CommandHeader, 512> BuildIncrementWithWfiCommandList(
+ NvFence fence) {
+ boost::container::small_vector<Tegra::CommandHeader, 512> result{
Tegra::BuildCommandHeader(Tegra::BufferMethods::WaitForIdle, 1,
Tegra::SubmissionMode::Increasing),
{}};
- const std::vector<Tegra::CommandHeader> increment{BuildIncrementCommandList(fence)};
-
- result.insert(result.end(), increment.begin(), increment.end());
-
+ auto increment_list{BuildIncrementCommandList(fence)};
+ result.insert(result.end(), increment_list.begin(), increment_list.end());
return result;
}
-NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::vector<u8>& output,
+NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::span<u8> output,
Tegra::CommandList&& entries) {
LOG_TRACE(Service_NVDRV, "called, gpfifo={:X}, num_entries={:X}, flags={:X}", params.address,
params.num_entries, params.flags.raw);
@@ -293,7 +294,7 @@ NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::vector<u8>
return NvResult::Success;
}
-NvResult nvhost_gpu::SubmitGPFIFOBase(std::span<const u8> input, std::vector<u8>& output,
+NvResult nvhost_gpu::SubmitGPFIFOBase(std::span<const u8> input, std::span<u8> output,
bool kickoff) {
if (input.size() < sizeof(IoctlSubmitGpfifo)) {
UNIMPLEMENTED();
@@ -315,7 +316,7 @@ NvResult nvhost_gpu::SubmitGPFIFOBase(std::span<const u8> input, std::vector<u8>
}
NvResult nvhost_gpu::SubmitGPFIFOBase(std::span<const u8> input, std::span<const u8> input_inline,
- std::vector<u8>& output) {
+ std::span<u8> output) {
if (input.size() < sizeof(IoctlSubmitGpfifo)) {
UNIMPLEMENTED();
return NvResult::InvalidSize;
@@ -327,7 +328,7 @@ NvResult nvhost_gpu::SubmitGPFIFOBase(std::span<const u8> input, std::span<const
return SubmitGPFIFOImpl(params, output, std::move(entries));
}
-NvResult nvhost_gpu::GetWaitbase(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::GetWaitbase(std::span<const u8> input, std::span<u8> output) {
IoctlGetWaitbase params{};
std::memcpy(&params, input.data(), sizeof(IoctlGetWaitbase));
LOG_INFO(Service_NVDRV, "called, unknown=0x{:X}", params.unknown);
@@ -337,7 +338,7 @@ NvResult nvhost_gpu::GetWaitbase(std::span<const u8> input, std::vector<u8>& out
return NvResult::Success;
}
-NvResult nvhost_gpu::ChannelSetTimeout(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::ChannelSetTimeout(std::span<const u8> input, std::span<u8> output) {
IoctlChannelSetTimeout params{};
std::memcpy(&params, input.data(), sizeof(IoctlChannelSetTimeout));
LOG_INFO(Service_NVDRV, "called, timeout=0x{:X}", params.timeout);
@@ -345,7 +346,7 @@ NvResult nvhost_gpu::ChannelSetTimeout(std::span<const u8> input, std::vector<u8
return NvResult::Success;
}
-NvResult nvhost_gpu::ChannelSetTimeslice(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_gpu::ChannelSetTimeslice(std::span<const u8> input, std::span<u8> output) {
IoctlSetTimeslice params{};
std::memcpy(&params, input.data(), sizeof(IoctlSetTimeslice));
LOG_INFO(Service_NVDRV, "called, timeslice=0x{:X}", params.timeslice);
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
index 3ca58202d..529c20526 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_gpu.h
@@ -41,11 +41,11 @@ public:
~nvhost_gpu() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
@@ -186,23 +186,23 @@ private:
u32_le channel_priority{};
u32_le channel_timeslice{};
- NvResult SetNVMAPfd(std::span<const u8> input, std::vector<u8>& output);
- NvResult SetClientData(std::span<const u8> input, std::vector<u8>& output);
- NvResult GetClientData(std::span<const u8> input, std::vector<u8>& output);
- NvResult ZCullBind(std::span<const u8> input, std::vector<u8>& output);
- NvResult SetErrorNotifier(std::span<const u8> input, std::vector<u8>& output);
- NvResult SetChannelPriority(std::span<const u8> input, std::vector<u8>& output);
- NvResult AllocGPFIFOEx2(std::span<const u8> input, std::vector<u8>& output);
- NvResult AllocateObjectContext(std::span<const u8> input, std::vector<u8>& output);
- NvResult SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::vector<u8>& output,
+ NvResult SetNVMAPfd(std::span<const u8> input, std::span<u8> output);
+ NvResult SetClientData(std::span<const u8> input, std::span<u8> output);
+ NvResult GetClientData(std::span<const u8> input, std::span<u8> output);
+ NvResult ZCullBind(std::span<const u8> input, std::span<u8> output);
+ NvResult SetErrorNotifier(std::span<const u8> input, std::span<u8> output);
+ NvResult SetChannelPriority(std::span<const u8> input, std::span<u8> output);
+ NvResult AllocGPFIFOEx2(std::span<const u8> input, std::span<u8> output);
+ NvResult AllocateObjectContext(std::span<const u8> input, std::span<u8> output);
+ NvResult SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, std::span<u8> output,
Tegra::CommandList&& entries);
- NvResult SubmitGPFIFOBase(std::span<const u8> input, std::vector<u8>& output,
+ NvResult SubmitGPFIFOBase(std::span<const u8> input, std::span<u8> output,
bool kickoff = false);
NvResult SubmitGPFIFOBase(std::span<const u8> input, std::span<const u8> input_inline,
- std::vector<u8>& output);
- NvResult GetWaitbase(std::span<const u8> input, std::vector<u8>& output);
- NvResult ChannelSetTimeout(std::span<const u8> input, std::vector<u8>& output);
- NvResult ChannelSetTimeslice(std::span<const u8> input, std::vector<u8>& output);
+ std::span<u8> output);
+ NvResult GetWaitbase(std::span<const u8> input, std::span<u8> output);
+ NvResult ChannelSetTimeout(std::span<const u8> input, std::span<u8> output);
+ NvResult ChannelSetTimeslice(std::span<const u8> input, std::span<u8> output);
EventInterface& events_interface;
NvCore::Container& core;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp b/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp
index dc45169ad..a174442a6 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvdec.cpp
@@ -16,7 +16,7 @@ nvhost_nvdec::nvhost_nvdec(Core::System& system_, NvCore::Container& core_)
nvhost_nvdec::~nvhost_nvdec() = default;
NvResult nvhost_nvdec::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 0x0:
switch (command.cmd) {
@@ -56,13 +56,13 @@ NvResult nvhost_nvdec::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> in
}
NvResult nvhost_nvdec::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvhost_nvdec::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvdec.h b/src/core/hle/service/nvdrv/devices/nvhost_nvdec.h
index 0d615bbcb..ad2233c49 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_nvdec.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvdec.h
@@ -14,11 +14,11 @@ public:
~nvhost_nvdec() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp b/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp
index 1ab51f10b..61649aa4a 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.cpp
@@ -36,7 +36,7 @@ std::size_t SliceVectors(std::span<const u8> input, std::vector<T>& dst, std::si
// Writes the data in src to an offset into the dst vector. The offset is specified in bytes
// Returns the number of bytes written into dst.
template <typename T>
-std::size_t WriteVectors(std::vector<u8>& dst, const std::vector<T>& src, std::size_t offset) {
+std::size_t WriteVectors(std::span<u8> dst, const std::vector<T>& src, std::size_t offset) {
if (src.empty()) {
return 0;
}
@@ -72,8 +72,7 @@ NvResult nvhost_nvdec_common::SetNVMAPfd(std::span<const u8> input) {
return NvResult::Success;
}
-NvResult nvhost_nvdec_common::Submit(DeviceFD fd, std::span<const u8> input,
- std::vector<u8>& output) {
+NvResult nvhost_nvdec_common::Submit(DeviceFD fd, std::span<const u8> input, std::span<u8> output) {
IoctlSubmit params{};
std::memcpy(&params, input.data(), sizeof(IoctlSubmit));
LOG_DEBUG(Service_NVDRV, "called NVDEC Submit, cmd_buffer_count={}", params.cmd_buffer_count);
@@ -121,7 +120,7 @@ NvResult nvhost_nvdec_common::Submit(DeviceFD fd, std::span<const u8> input,
return NvResult::Success;
}
-NvResult nvhost_nvdec_common::GetSyncpoint(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_nvdec_common::GetSyncpoint(std::span<const u8> input, std::span<u8> output) {
IoctlGetSyncpoint params{};
std::memcpy(&params, input.data(), sizeof(IoctlGetSyncpoint));
LOG_DEBUG(Service_NVDRV, "called GetSyncpoint, id={}", params.param);
@@ -133,7 +132,7 @@ NvResult nvhost_nvdec_common::GetSyncpoint(std::span<const u8> input, std::vecto
return NvResult::Success;
}
-NvResult nvhost_nvdec_common::GetWaitbase(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_nvdec_common::GetWaitbase(std::span<const u8> input, std::span<u8> output) {
IoctlGetWaitbase params{};
LOG_CRITICAL(Service_NVDRV, "called WAITBASE");
std::memcpy(&params, input.data(), sizeof(IoctlGetWaitbase));
@@ -142,7 +141,7 @@ NvResult nvhost_nvdec_common::GetWaitbase(std::span<const u8> input, std::vector
return NvResult::Success;
}
-NvResult nvhost_nvdec_common::MapBuffer(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_nvdec_common::MapBuffer(std::span<const u8> input, std::span<u8> output) {
IoctlMapBuffer params{};
std::memcpy(&params, input.data(), sizeof(IoctlMapBuffer));
std::vector<MapBufferEntry> cmd_buffer_handles(params.num_entries);
@@ -159,7 +158,7 @@ NvResult nvhost_nvdec_common::MapBuffer(std::span<const u8> input, std::vector<u
return NvResult::Success;
}
-NvResult nvhost_nvdec_common::UnmapBuffer(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_nvdec_common::UnmapBuffer(std::span<const u8> input, std::span<u8> output) {
IoctlMapBuffer params{};
std::memcpy(&params, input.data(), sizeof(IoctlMapBuffer));
std::vector<MapBufferEntry> cmd_buffer_handles(params.num_entries);
@@ -173,7 +172,7 @@ NvResult nvhost_nvdec_common::UnmapBuffer(std::span<const u8> input, std::vector
return NvResult::Success;
}
-NvResult nvhost_nvdec_common::SetSubmitTimeout(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_nvdec_common::SetSubmitTimeout(std::span<const u8> input, std::span<u8> output) {
std::memcpy(&submit_timeout, input.data(), input.size());
LOG_WARNING(Service_NVDRV, "(STUBBED) called");
return NvResult::Success;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h b/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h
index 5af26a26f..9bb573bfe 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvdec_common.h
@@ -108,12 +108,12 @@ protected:
/// Ioctl command implementations
NvResult SetNVMAPfd(std::span<const u8> input);
- NvResult Submit(DeviceFD fd, std::span<const u8> input, std::vector<u8>& output);
- NvResult GetSyncpoint(std::span<const u8> input, std::vector<u8>& output);
- NvResult GetWaitbase(std::span<const u8> input, std::vector<u8>& output);
- NvResult MapBuffer(std::span<const u8> input, std::vector<u8>& output);
- NvResult UnmapBuffer(std::span<const u8> input, std::vector<u8>& output);
- NvResult SetSubmitTimeout(std::span<const u8> input, std::vector<u8>& output);
+ NvResult Submit(DeviceFD fd, std::span<const u8> input, std::span<u8> output);
+ NvResult GetSyncpoint(std::span<const u8> input, std::span<u8> output);
+ NvResult GetWaitbase(std::span<const u8> input, std::span<u8> output);
+ NvResult MapBuffer(std::span<const u8> input, std::span<u8> output);
+ NvResult UnmapBuffer(std::span<const u8> input, std::span<u8> output);
+ NvResult SetSubmitTimeout(std::span<const u8> input, std::span<u8> output);
Kernel::KEvent* QueryEvent(u32 event_id) override;
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp
index 39f30e7c8..a05c8cdae 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.cpp
@@ -13,7 +13,7 @@ nvhost_nvjpg::nvhost_nvjpg(Core::System& system_) : nvdevice{system_} {}
nvhost_nvjpg::~nvhost_nvjpg() = default;
NvResult nvhost_nvjpg::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 'H':
switch (command.cmd) {
@@ -32,13 +32,13 @@ NvResult nvhost_nvjpg::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> in
}
NvResult nvhost_nvjpg::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvhost_nvjpg::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
@@ -46,7 +46,7 @@ NvResult nvhost_nvjpg::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> in
void nvhost_nvjpg::OnOpen(DeviceFD fd) {}
void nvhost_nvjpg::OnClose(DeviceFD fd) {}
-NvResult nvhost_nvjpg::SetNVMAPfd(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvhost_nvjpg::SetNVMAPfd(std::span<const u8> input, std::span<u8> output) {
IoctlSetNvmapFD params{};
std::memcpy(&params, input.data(), input.size());
LOG_DEBUG(Service_NVDRV, "called, fd={}", params.nvmap_fd);
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h
index 41b57e872..5623e0d47 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_nvjpg.h
@@ -16,11 +16,11 @@ public:
~nvhost_nvjpg() override;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
@@ -33,7 +33,7 @@ private:
s32_le nvmap_fd{};
- NvResult SetNVMAPfd(std::span<const u8> input, std::vector<u8>& output);
+ NvResult SetNVMAPfd(std::span<const u8> input, std::span<u8> output);
};
} // namespace Service::Nvidia::Devices
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp b/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp
index b0ea402a7..c0b8684c3 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvhost_vic.cpp
@@ -16,7 +16,7 @@ nvhost_vic::nvhost_vic(Core::System& system_, NvCore::Container& core_)
nvhost_vic::~nvhost_vic() = default;
NvResult nvhost_vic::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 0x0:
switch (command.cmd) {
@@ -56,13 +56,13 @@ NvResult nvhost_vic::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> inpu
}
NvResult nvhost_vic::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
NvResult nvhost_vic::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+ std::span<u8> output, std::span<u8> inline_output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
diff --git a/src/core/hle/service/nvdrv/devices/nvhost_vic.h b/src/core/hle/service/nvdrv/devices/nvhost_vic.h
index b5e350a83..cadbcb0a5 100644
--- a/src/core/hle/service/nvdrv/devices/nvhost_vic.h
+++ b/src/core/hle/service/nvdrv/devices/nvhost_vic.h
@@ -13,11 +13,11 @@ public:
~nvhost_vic();
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
diff --git a/src/core/hle/service/nvdrv/devices/nvmap.cpp b/src/core/hle/service/nvdrv/devices/nvmap.cpp
index 07417f045..e7f7e273b 100644
--- a/src/core/hle/service/nvdrv/devices/nvmap.cpp
+++ b/src/core/hle/service/nvdrv/devices/nvmap.cpp
@@ -26,7 +26,7 @@ nvmap::nvmap(Core::System& system_, NvCore::Container& container_)
nvmap::~nvmap() = default;
NvResult nvmap::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
switch (command.group) {
case 0x1:
switch (command.cmd) {
@@ -55,13 +55,13 @@ NvResult nvmap::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
}
NvResult nvmap::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
-NvResult nvmap::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+NvResult nvmap::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) {
UNIMPLEMENTED_MSG("Unimplemented ioctl={:08X}", command.raw);
return NvResult::NotImplemented;
}
@@ -69,7 +69,7 @@ NvResult nvmap::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
void nvmap::OnOpen(DeviceFD fd) {}
void nvmap::OnClose(DeviceFD fd) {}
-NvResult nvmap::IocCreate(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvmap::IocCreate(std::span<const u8> input, std::span<u8> output) {
IocCreateParams params;
std::memcpy(&params, input.data(), sizeof(params));
LOG_DEBUG(Service_NVDRV, "called, size=0x{:08X}", params.size);
@@ -89,7 +89,7 @@ NvResult nvmap::IocCreate(std::span<const u8> input, std::vector<u8>& output) {
return NvResult::Success;
}
-NvResult nvmap::IocAlloc(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvmap::IocAlloc(std::span<const u8> input, std::span<u8> output) {
IocAllocParams params;
std::memcpy(&params, input.data(), sizeof(params));
LOG_DEBUG(Service_NVDRV, "called, addr={:X}", params.address);
@@ -137,7 +137,7 @@ NvResult nvmap::IocAlloc(std::span<const u8> input, std::vector<u8>& output) {
return result;
}
-NvResult nvmap::IocGetId(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvmap::IocGetId(std::span<const u8> input, std::span<u8> output) {
IocGetIdParams params;
std::memcpy(&params, input.data(), sizeof(params));
@@ -161,7 +161,7 @@ NvResult nvmap::IocGetId(std::span<const u8> input, std::vector<u8>& output) {
return NvResult::Success;
}
-NvResult nvmap::IocFromId(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvmap::IocFromId(std::span<const u8> input, std::span<u8> output) {
IocFromIdParams params;
std::memcpy(&params, input.data(), sizeof(params));
@@ -192,7 +192,7 @@ NvResult nvmap::IocFromId(std::span<const u8> input, std::vector<u8>& output) {
return NvResult::Success;
}
-NvResult nvmap::IocParam(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvmap::IocParam(std::span<const u8> input, std::span<u8> output) {
enum class ParamTypes { Size = 1, Alignment = 2, Base = 3, Heap = 4, Kind = 5, Compr = 6 };
IocParamParams params;
@@ -241,7 +241,7 @@ NvResult nvmap::IocParam(std::span<const u8> input, std::vector<u8>& output) {
return NvResult::Success;
}
-NvResult nvmap::IocFree(std::span<const u8> input, std::vector<u8>& output) {
+NvResult nvmap::IocFree(std::span<const u8> input, std::span<u8> output) {
IocFreeParams params;
std::memcpy(&params, input.data(), sizeof(params));
diff --git a/src/core/hle/service/nvdrv/devices/nvmap.h b/src/core/hle/service/nvdrv/devices/nvmap.h
index 82bd3b118..40c65b430 100644
--- a/src/core/hle/service/nvdrv/devices/nvmap.h
+++ b/src/core/hle/service/nvdrv/devices/nvmap.h
@@ -27,11 +27,11 @@ public:
nvmap& operator=(const nvmap&) = delete;
NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) override;
+ std::span<u8> output) override;
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) override;
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output) override;
+ std::span<const u8> inline_input, std::span<u8> output) override;
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) override;
void OnOpen(DeviceFD fd) override;
void OnClose(DeviceFD fd) override;
@@ -106,12 +106,12 @@ private:
};
static_assert(sizeof(IocGetIdParams) == 8, "IocGetIdParams has wrong size");
- NvResult IocCreate(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocAlloc(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocGetId(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocFromId(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocParam(std::span<const u8> input, std::vector<u8>& output);
- NvResult IocFree(std::span<const u8> input, std::vector<u8>& output);
+ NvResult IocCreate(std::span<const u8> input, std::span<u8> output);
+ NvResult IocAlloc(std::span<const u8> input, std::span<u8> output);
+ NvResult IocGetId(std::span<const u8> input, std::span<u8> output);
+ NvResult IocFromId(std::span<const u8> input, std::span<u8> output);
+ NvResult IocParam(std::span<const u8> input, std::span<u8> output);
+ NvResult IocFree(std::span<const u8> input, std::span<u8> output);
NvCore::Container& container;
NvCore::NvMap& file;
diff --git a/src/core/hle/service/nvdrv/nvdrv.cpp b/src/core/hle/service/nvdrv/nvdrv.cpp
index 3d774eec4..9e46ee8dd 100644
--- a/src/core/hle/service/nvdrv/nvdrv.cpp
+++ b/src/core/hle/service/nvdrv/nvdrv.cpp
@@ -130,7 +130,7 @@ DeviceFD Module::Open(const std::string& device_name) {
}
NvResult Module::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output) {
+ std::span<u8> output) {
if (fd < 0) {
LOG_ERROR(Service_NVDRV, "Invalid DeviceFD={}!", fd);
return NvResult::InvalidState;
@@ -147,7 +147,7 @@ NvResult Module::Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input,
}
NvResult Module::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output) {
+ std::span<const u8> inline_input, std::span<u8> output) {
if (fd < 0) {
LOG_ERROR(Service_NVDRV, "Invalid DeviceFD={}!", fd);
return NvResult::InvalidState;
@@ -163,8 +163,8 @@ NvResult Module::Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
return itr->second->Ioctl2(fd, command, input, inline_input, output);
}
-NvResult Module::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::vector<u8>& output, std::vector<u8>& inline_output) {
+NvResult Module::Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output) {
if (fd < 0) {
LOG_ERROR(Service_NVDRV, "Invalid DeviceFD={}!", fd);
return NvResult::InvalidState;
diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h
index 668be742b..d8622b3ca 100644
--- a/src/core/hle/service/nvdrv/nvdrv.h
+++ b/src/core/hle/service/nvdrv/nvdrv.h
@@ -80,13 +80,13 @@ public:
DeviceFD Open(const std::string& device_name);
/// Sends an ioctl command to the specified file descriptor.
- NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output);
+ NvResult Ioctl1(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output);
NvResult Ioctl2(DeviceFD fd, Ioctl command, std::span<const u8> input,
- std::span<const u8> inline_input, std::vector<u8>& output);
+ std::span<const u8> inline_input, std::span<u8> output);
- NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::vector<u8>& output,
- std::vector<u8>& inline_output);
+ NvResult Ioctl3(DeviceFD fd, Ioctl command, std::span<const u8> input, std::span<u8> output,
+ std::span<u8> inline_output);
/// Closes a device file descriptor and returns operation success.
NvResult Close(DeviceFD fd);
diff --git a/src/core/hle/service/nvdrv/nvdrv_interface.cpp b/src/core/hle/service/nvdrv/nvdrv_interface.cpp
index d010a1e03..348207e25 100644
--- a/src/core/hle/service/nvdrv/nvdrv_interface.cpp
+++ b/src/core/hle/service/nvdrv/nvdrv_interface.cpp
@@ -63,12 +63,12 @@ void NVDRV::Ioctl1(HLERequestContext& ctx) {
}
// Check device
- std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
+ tmp_output.resize_destructive(ctx.GetWriteBufferSize(0));
const auto input_buffer = ctx.ReadBuffer(0);
- const auto nv_result = nvdrv->Ioctl1(fd, command, input_buffer, output_buffer);
+ const auto nv_result = nvdrv->Ioctl1(fd, command, input_buffer, tmp_output);
if (command.is_out != 0) {
- ctx.WriteBuffer(output_buffer);
+ ctx.WriteBuffer(tmp_output);
}
IPC::ResponseBuilder rb{ctx, 3};
@@ -90,12 +90,12 @@ void NVDRV::Ioctl2(HLERequestContext& ctx) {
const auto input_buffer = ctx.ReadBuffer(0);
const auto input_inlined_buffer = ctx.ReadBuffer(1);
- std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
+ tmp_output.resize_destructive(ctx.GetWriteBufferSize(0));
const auto nv_result =
- nvdrv->Ioctl2(fd, command, input_buffer, input_inlined_buffer, output_buffer);
+ nvdrv->Ioctl2(fd, command, input_buffer, input_inlined_buffer, tmp_output);
if (command.is_out != 0) {
- ctx.WriteBuffer(output_buffer);
+ ctx.WriteBuffer(tmp_output);
}
IPC::ResponseBuilder rb{ctx, 3};
@@ -116,14 +116,12 @@ void NVDRV::Ioctl3(HLERequestContext& ctx) {
}
const auto input_buffer = ctx.ReadBuffer(0);
- std::vector<u8> output_buffer(ctx.GetWriteBufferSize(0));
- std::vector<u8> output_buffer_inline(ctx.GetWriteBufferSize(1));
-
- const auto nv_result =
- nvdrv->Ioctl3(fd, command, input_buffer, output_buffer, output_buffer_inline);
+ tmp_output.resize_destructive(ctx.GetWriteBufferSize(0));
+ tmp_output_inline.resize_destructive(ctx.GetWriteBufferSize(1));
+ const auto nv_result = nvdrv->Ioctl3(fd, command, input_buffer, tmp_output, tmp_output_inline);
if (command.is_out != 0) {
- ctx.WriteBuffer(output_buffer, 0);
- ctx.WriteBuffer(output_buffer_inline, 1);
+ ctx.WriteBuffer(tmp_output, 0);
+ ctx.WriteBuffer(tmp_output_inline, 1);
}
IPC::ResponseBuilder rb{ctx, 3};
diff --git a/src/core/hle/service/nvdrv/nvdrv_interface.h b/src/core/hle/service/nvdrv/nvdrv_interface.h
index 881ea1a6b..4b593ff90 100644
--- a/src/core/hle/service/nvdrv/nvdrv_interface.h
+++ b/src/core/hle/service/nvdrv/nvdrv_interface.h
@@ -4,6 +4,7 @@
#pragma once
#include <memory>
+#include "common/scratch_buffer.h"
#include "core/hle/service/nvdrv/nvdrv.h"
#include "core/hle/service/service.h"
@@ -33,6 +34,8 @@ private:
u64 pid{};
bool is_initialized{};
+ Common::ScratchBuffer<u8> tmp_output;
+ Common::ScratchBuffer<u8> tmp_output_inline;
};
} // namespace Service::Nvidia
diff --git a/src/core/hle/service/nvnflinger/nvnflinger.cpp b/src/core/hle/service/nvnflinger/nvnflinger.cpp
index da2d5890f..5f55cd31e 100644
--- a/src/core/hle/service/nvnflinger/nvnflinger.cpp
+++ b/src/core/hle/service/nvnflinger/nvnflinger.cpp
@@ -43,14 +43,10 @@ void Nvnflinger::SplitVSync(std::stop_token stop_token) {
Common::SetCurrentThreadPriority(Common::ThreadPriority::High);
while (!stop_token.stop_requested()) {
- vsync_signal.wait(false);
- vsync_signal.store(false);
-
- guard->lock();
+ vsync_signal.Wait();
+ const auto lock_guard = Lock();
Compose();
-
- guard->unlock();
}
}
@@ -69,8 +65,8 @@ Nvnflinger::Nvnflinger(Core::System& system_, HosBinderDriverServer& hos_binder_
"ScreenComposition",
[this](std::uintptr_t, s64 time,
std::chrono::nanoseconds ns_late) -> std::optional<std::chrono::nanoseconds> {
- vsync_signal.store(true);
- vsync_signal.notify_all();
+ { const auto lock_guard = Lock(); }
+ vsync_signal.Set();
return std::chrono::nanoseconds(GetNextTicks());
});
@@ -96,8 +92,7 @@ Nvnflinger::~Nvnflinger() {
if (system.IsMulticore()) {
system.CoreTiming().UnscheduleEvent(multi_composition_event, {});
vsync_thread.request_stop();
- vsync_signal.store(true);
- vsync_signal.notify_all();
+ vsync_signal.Set();
} else {
system.CoreTiming().UnscheduleEvent(single_composition_event, {});
}
diff --git a/src/core/hle/service/nvnflinger/nvnflinger.h b/src/core/hle/service/nvnflinger/nvnflinger.h
index a043cceb2..ef236303a 100644
--- a/src/core/hle/service/nvnflinger/nvnflinger.h
+++ b/src/core/hle/service/nvnflinger/nvnflinger.h
@@ -12,6 +12,7 @@
#include "common/common_types.h"
#include "common/polyfill_thread.h"
+#include "common/thread.h"
#include "core/hle/result.h"
#include "core/hle/service/kernel_helpers.h"
@@ -143,7 +144,7 @@ private:
Core::System& system;
- std::atomic<bool> vsync_signal;
+ Common::Event vsync_signal;
std::jthread vsync_thread;
diff --git a/src/core/hle/service/nvnflinger/parcel.h b/src/core/hle/service/nvnflinger/parcel.h
index fb56d75d7..23ba315a0 100644
--- a/src/core/hle/service/nvnflinger/parcel.h
+++ b/src/core/hle/service/nvnflinger/parcel.h
@@ -6,6 +6,7 @@
#include <memory>
#include <span>
#include <vector>
+#include <boost/container/small_vector.hpp>
#include "common/alignment.h"
#include "common/assert.h"
@@ -167,7 +168,7 @@ public:
private:
template <typename T>
requires(std::is_trivially_copyable_v<T>)
- void WriteImpl(const T& val, std::vector<u8>& buffer) {
+ void WriteImpl(const T& val, boost::container::small_vector<u8, 0x200>& buffer) {
const size_t aligned_size = Common::AlignUp(sizeof(T), 4);
const size_t old_size = buffer.size();
buffer.resize(old_size + aligned_size);
@@ -176,8 +177,8 @@ private:
}
private:
- std::vector<u8> m_data_buffer;
- std::vector<u8> m_object_buffer;
+ boost::container::small_vector<u8, 0x200> m_data_buffer;
+ boost::container::small_vector<u8, 0x200> m_object_buffer;
};
} // namespace Service::android
diff --git a/src/core/hle/service/server_manager.cpp b/src/core/hle/service/server_manager.cpp
index 156bc27d8..d1e99b184 100644
--- a/src/core/hle/service/server_manager.cpp
+++ b/src/core/hle/service/server_manager.cpp
@@ -44,7 +44,7 @@ ServerManager::~ServerManager() {
m_event->Signal();
// Wait for processing to stop.
- m_stopped.wait(false);
+ m_stopped.Wait();
m_threads.clear();
// Clean up ports.
@@ -182,10 +182,7 @@ void ServerManager::StartAdditionalHostThreads(const char* name, size_t num_thre
}
Result ServerManager::LoopProcess() {
- SCOPE_EXIT({
- m_stopped.store(true);
- m_stopped.notify_all();
- });
+ SCOPE_EXIT({ m_stopped.Set(); });
R_RETURN(this->LoopProcessImpl());
}
diff --git a/src/core/hle/service/server_manager.h b/src/core/hle/service/server_manager.h
index fdb8af2ff..58b0a0832 100644
--- a/src/core/hle/service/server_manager.h
+++ b/src/core/hle/service/server_manager.h
@@ -3,7 +3,6 @@
#pragma once
-#include <atomic>
#include <functional>
#include <list>
#include <map>
@@ -12,6 +11,7 @@
#include <vector>
#include "common/polyfill_thread.h"
+#include "common/thread.h"
#include "core/hle/result.h"
#include "core/hle/service/mutex.h"
@@ -82,7 +82,7 @@ private:
std::list<RequestState> m_deferrals{};
// Host state tracking
- std::atomic<bool> m_stopped{};
+ Common::Event m_stopped{};
std::vector<std::jthread> m_threads{};
std::stop_source m_stop_source{};
};
diff --git a/src/core/hle/service/time/clock_types.h b/src/core/hle/service/time/clock_types.h
index e6293ffb9..9fc01ea90 100644
--- a/src/core/hle/service/time/clock_types.h
+++ b/src/core/hle/service/time/clock_types.h
@@ -3,6 +3,8 @@
#pragma once
+#include <ratio>
+
#include "common/common_funcs.h"
#include "common/common_types.h"
#include "common/uuid.h"
@@ -74,18 +76,19 @@ static_assert(std::is_trivially_copyable_v<ContinuousAdjustmentTimePoint>,
/// https://switchbrew.org/wiki/Glue_services#TimeSpanType
struct TimeSpanType {
s64 nanoseconds{};
- static constexpr s64 ns_per_second{1000000000ULL};
s64 ToSeconds() const {
- return nanoseconds / ns_per_second;
+ return nanoseconds / std::nano::den;
}
static TimeSpanType FromSeconds(s64 seconds) {
- return {seconds * ns_per_second};
+ return {seconds * std::nano::den};
}
- static TimeSpanType FromTicks(u64 ticks, u64 frequency) {
- return FromSeconds(static_cast<s64>(ticks) / static_cast<s64>(frequency));
+ template <u64 Frequency>
+ static TimeSpanType FromTicks(u64 ticks) {
+ using TicksToNSRatio = std::ratio<std::nano::den, Frequency>;
+ return {static_cast<s64>(ticks * TicksToNSRatio::num / TicksToNSRatio::den)};
}
};
static_assert(sizeof(TimeSpanType) == 8, "TimeSpanType is incorrect size");
diff --git a/src/core/hle/service/time/standard_steady_clock_core.cpp b/src/core/hle/service/time/standard_steady_clock_core.cpp
index 3dbbb9850..5627b7003 100644
--- a/src/core/hle/service/time/standard_steady_clock_core.cpp
+++ b/src/core/hle/service/time/standard_steady_clock_core.cpp
@@ -10,7 +10,7 @@ namespace Service::Time::Clock {
TimeSpanType StandardSteadyClockCore::GetCurrentRawTimePoint(Core::System& system) {
const TimeSpanType ticks_time_span{
- TimeSpanType::FromTicks(system.CoreTiming().GetClockTicks(), Core::Hardware::CNTFREQ)};
+ TimeSpanType::FromTicks<Core::Hardware::CNTFREQ>(system.CoreTiming().GetClockTicks())};
TimeSpanType raw_time_point{setup_value.nanoseconds + ticks_time_span.nanoseconds};
if (raw_time_point.nanoseconds < cached_raw_time_point.nanoseconds) {
diff --git a/src/core/hle/service/time/tick_based_steady_clock_core.cpp b/src/core/hle/service/time/tick_based_steady_clock_core.cpp
index 27600413e..0d9fb3143 100644
--- a/src/core/hle/service/time/tick_based_steady_clock_core.cpp
+++ b/src/core/hle/service/time/tick_based_steady_clock_core.cpp
@@ -10,7 +10,7 @@ namespace Service::Time::Clock {
SteadyClockTimePoint TickBasedSteadyClockCore::GetTimePoint(Core::System& system) {
const TimeSpanType ticks_time_span{
- TimeSpanType::FromTicks(system.CoreTiming().GetClockTicks(), Core::Hardware::CNTFREQ)};
+ TimeSpanType::FromTicks<Core::Hardware::CNTFREQ>(system.CoreTiming().GetClockTicks())};
return {ticks_time_span.ToSeconds(), GetClockSourceId()};
}
diff --git a/src/core/hle/service/time/time.cpp b/src/core/hle/service/time/time.cpp
index 868be60c5..7197ca30f 100644
--- a/src/core/hle/service/time/time.cpp
+++ b/src/core/hle/service/time/time.cpp
@@ -240,8 +240,8 @@ void Module::Interface::CalculateMonotonicSystemClockBaseTimePoint(HLERequestCon
const auto current_time_point{steady_clock_core.GetCurrentTimePoint(system)};
if (current_time_point.clock_source_id == context.steady_time_point.clock_source_id) {
- const auto ticks{Clock::TimeSpanType::FromTicks(system.CoreTiming().GetClockTicks(),
- Core::Hardware::CNTFREQ)};
+ const auto ticks{Clock::TimeSpanType::FromTicks<Core::Hardware::CNTFREQ>(
+ system.CoreTiming().GetClockTicks())};
const s64 base_time_point{context.offset + current_time_point.time_point -
ticks.ToSeconds()};
IPC::ResponseBuilder rb{ctx, (sizeof(s64) / 4) + 2};
diff --git a/src/core/hle/service/time/time_sharedmemory.cpp b/src/core/hle/service/time/time_sharedmemory.cpp
index ce1c85bcc..a00676669 100644
--- a/src/core/hle/service/time/time_sharedmemory.cpp
+++ b/src/core/hle/service/time/time_sharedmemory.cpp
@@ -21,8 +21,9 @@ SharedMemory::~SharedMemory() = default;
void SharedMemory::SetupStandardSteadyClock(const Common::UUID& clock_source_id,
Clock::TimeSpanType current_time_point) {
- const Clock::TimeSpanType ticks_time_span{Clock::TimeSpanType::FromTicks(
- system.CoreTiming().GetClockTicks(), Core::Hardware::CNTFREQ)};
+ const Clock::TimeSpanType ticks_time_span{
+ Clock::TimeSpanType::FromTicks<Core::Hardware::CNTFREQ>(
+ system.CoreTiming().GetClockTicks())};
const Clock::SteadyClockContext context{
static_cast<u64>(current_time_point.nanoseconds - ticks_time_span.nanoseconds),
clock_source_id};
diff --git a/src/core/hle/service/time/time_zone_manager.cpp b/src/core/hle/service/time/time_zone_manager.cpp
index 63aacd19f..205371a26 100644
--- a/src/core/hle/service/time/time_zone_manager.cpp
+++ b/src/core/hle/service/time/time_zone_manager.cpp
@@ -911,9 +911,13 @@ static Result ToCalendarTimeInternal(const TimeZoneRule& rules, s64 time,
calendar_additional_info.is_dst = rules.ttis[tti_index].is_dst;
const char* time_zone{&rules.chars[rules.ttis[tti_index].abbreviation_list_index]};
- for (int index{}; time_zone[index] != '\0'; ++index) {
+ u32 index;
+ for (index = 0; time_zone[index] != '\0' && time_zone[index] != ',' &&
+ index < calendar_additional_info.timezone_name.size() - 1;
+ ++index) {
calendar_additional_info.timezone_name[index] = time_zone[index];
}
+ calendar_additional_info.timezone_name[index] = '\0';
return ResultSuccess;
}
diff --git a/src/input_common/drivers/joycon.cpp b/src/input_common/drivers/joycon.cpp
index b2b5677c8..0aca5a3a3 100644
--- a/src/input_common/drivers/joycon.cpp
+++ b/src/input_common/drivers/joycon.cpp
@@ -102,12 +102,12 @@ bool Joycons::IsDeviceNew(SDL_hid_device_info* device_info) const {
Joycon::SerialNumber serial_number{};
const auto result = Joycon::JoyconDriver::GetDeviceType(device_info, type);
- if (result != Joycon::DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return false;
}
const auto result2 = Joycon::JoyconDriver::GetSerialNumber(device_info, serial_number);
- if (result2 != Joycon::DriverResult::Success) {
+ if (result2 != Common::Input::DriverResult::Success) {
return false;
}
@@ -171,10 +171,10 @@ void Joycons::RegisterNewDevice(SDL_hid_device_info* device_info) {
LOG_WARNING(Input, "No free handles available");
return;
}
- if (result == Joycon::DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = handle->RequestDeviceAccess(device_info);
}
- if (result == Joycon::DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
LOG_WARNING(Input, "Initialize device");
const std::size_t port = handle->GetDevicePort();
@@ -195,8 +195,8 @@ void Joycons::RegisterNewDevice(SDL_hid_device_info* device_info) {
OnMotionUpdate(port, type, id, value);
}},
.on_ring_data = {[this](f32 ring_data) { OnRingConUpdate(ring_data); }},
- .on_amiibo_data = {[this, port, type](const std::vector<u8>& amiibo_data) {
- OnAmiiboUpdate(port, type, amiibo_data);
+ .on_amiibo_data = {[this, port, type](const Joycon::TagInfo& tag_info) {
+ OnAmiiboUpdate(port, type, tag_info);
}},
.on_camera_data = {[this, port](const std::vector<u8>& camera_data,
Joycon::IrsResolution format) {
@@ -273,8 +273,7 @@ Common::Input::DriverResult Joycons::SetLeds(const PadIdentifier& identifier,
led_config += led_status.led_3 ? 4 : 0;
led_config += led_status.led_4 ? 8 : 0;
- return static_cast<Common::Input::DriverResult>(
- handle->SetLedConfig(static_cast<u8>(led_config)));
+ return handle->SetLedConfig(static_cast<u8>(led_config));
}
Common::Input::DriverResult Joycons::SetCameraFormat(const PadIdentifier& identifier,
@@ -283,21 +282,113 @@ Common::Input::DriverResult Joycons::SetCameraFormat(const PadIdentifier& identi
if (handle == nullptr) {
return Common::Input::DriverResult::InvalidHandle;
}
- return static_cast<Common::Input::DriverResult>(handle->SetIrsConfig(
- Joycon::IrsMode::ImageTransfer, static_cast<Joycon::IrsResolution>(camera_format)));
+ return handle->SetIrsConfig(Joycon::IrsMode::ImageTransfer,
+ static_cast<Joycon::IrsResolution>(camera_format));
};
Common::Input::NfcState Joycons::SupportsNfc(const PadIdentifier& identifier_) const {
return Common::Input::NfcState::Success;
};
+Common::Input::NfcState Joycons::StartNfcPolling(const PadIdentifier& identifier) {
+ auto handle = GetHandle(identifier);
+ if (handle == nullptr) {
+ return Common::Input::NfcState::Unknown;
+ }
+ return TranslateDriverResult(handle->StartNfcPolling());
+};
+
+Common::Input::NfcState Joycons::StopNfcPolling(const PadIdentifier& identifier) {
+ auto handle = GetHandle(identifier);
+ if (handle == nullptr) {
+ return Common::Input::NfcState::Unknown;
+ }
+ return TranslateDriverResult(handle->StopNfcPolling());
+};
+
+Common::Input::NfcState Joycons::ReadAmiiboData(const PadIdentifier& identifier,
+ std::vector<u8>& out_data) {
+ auto handle = GetHandle(identifier);
+ if (handle == nullptr) {
+ return Common::Input::NfcState::Unknown;
+ }
+ return TranslateDriverResult(handle->ReadAmiiboData(out_data));
+}
+
Common::Input::NfcState Joycons::WriteNfcData(const PadIdentifier& identifier,
const std::vector<u8>& data) {
auto handle = GetHandle(identifier);
- if (handle->WriteNfcData(data) != Joycon::DriverResult::Success) {
- return Common::Input::NfcState::WriteFailed;
+ if (handle == nullptr) {
+ return Common::Input::NfcState::Unknown;
}
- return Common::Input::NfcState::Success;
+ return TranslateDriverResult(handle->WriteNfcData(data));
+};
+
+Common::Input::NfcState Joycons::ReadMifareData(const PadIdentifier& identifier,
+ const Common::Input::MifareRequest& request,
+ Common::Input::MifareRequest& data) {
+ auto handle = GetHandle(identifier);
+ if (handle == nullptr) {
+ return Common::Input::NfcState::Unknown;
+ }
+
+ const auto command = static_cast<Joycon::MifareCmd>(request.data[0].command);
+ std::vector<Joycon::MifareReadChunk> read_request{};
+ for (const auto& request_data : request.data) {
+ if (request_data.command == 0) {
+ continue;
+ }
+ Joycon::MifareReadChunk chunk = {
+ .command = command,
+ .sector_key = {},
+ .sector = request_data.sector,
+ };
+ memcpy(chunk.sector_key.data(), request_data.key.data(),
+ sizeof(Joycon::MifareReadChunk::sector_key));
+ read_request.emplace_back(chunk);
+ }
+
+ std::vector<Joycon::MifareReadData> read_data(read_request.size());
+ const auto result = handle->ReadMifareData(read_request, read_data);
+ if (result == Common::Input::DriverResult::Success) {
+ for (std::size_t i = 0; i < read_request.size(); i++) {
+ data.data[i] = {
+ .command = static_cast<u8>(command),
+ .sector = read_data[i].sector,
+ .key = {},
+ .data = read_data[i].data,
+ };
+ }
+ }
+ return TranslateDriverResult(result);
+};
+
+Common::Input::NfcState Joycons::WriteMifareData(const PadIdentifier& identifier,
+ const Common::Input::MifareRequest& request) {
+ auto handle = GetHandle(identifier);
+ if (handle == nullptr) {
+ return Common::Input::NfcState::Unknown;
+ }
+
+ const auto command = static_cast<Joycon::MifareCmd>(request.data[0].command);
+ std::vector<Joycon::MifareWriteChunk> write_request{};
+ for (const auto& request_data : request.data) {
+ if (request_data.command == 0) {
+ continue;
+ }
+ Joycon::MifareWriteChunk chunk = {
+ .command = command,
+ .sector_key = {},
+ .sector = request_data.sector,
+ .data = {},
+ };
+ memcpy(chunk.sector_key.data(), request_data.key.data(),
+ sizeof(Joycon::MifareReadChunk::sector_key));
+ memcpy(chunk.data.data(), request_data.data.data(), sizeof(Joycon::MifareWriteChunk::data));
+ write_request.emplace_back(chunk);
+ }
+
+ return TranslateDriverResult(handle->WriteMifareData(write_request));
};
Common::Input::DriverResult Joycons::SetPollingMode(const PadIdentifier& identifier,
@@ -310,15 +401,15 @@ Common::Input::DriverResult Joycons::SetPollingMode(const PadIdentifier& identif
switch (polling_mode) {
case Common::Input::PollingMode::Active:
- return static_cast<Common::Input::DriverResult>(handle->SetActiveMode());
+ return handle->SetActiveMode();
case Common::Input::PollingMode::Passive:
- return static_cast<Common::Input::DriverResult>(handle->SetPassiveMode());
+ return handle->SetPassiveMode();
case Common::Input::PollingMode::IR:
- return static_cast<Common::Input::DriverResult>(handle->SetIrMode());
+ return handle->SetIrMode();
case Common::Input::PollingMode::NFC:
- return static_cast<Common::Input::DriverResult>(handle->SetNfcMode());
+ return handle->SetNfcMode();
case Common::Input::PollingMode::Ring:
- return static_cast<Common::Input::DriverResult>(handle->SetRingConMode());
+ return handle->SetRingConMode();
default:
return Common::Input::DriverResult::NotSupported;
}
@@ -403,11 +494,20 @@ void Joycons::OnRingConUpdate(f32 ring_data) {
}
void Joycons::OnAmiiboUpdate(std::size_t port, Joycon::ControllerType type,
- const std::vector<u8>& amiibo_data) {
+ const Joycon::TagInfo& tag_info) {
const auto identifier = GetIdentifier(port, type);
- const auto nfc_state = amiibo_data.empty() ? Common::Input::NfcState::AmiiboRemoved
- : Common::Input::NfcState::NewAmiibo;
- SetNfc(identifier, {nfc_state, amiibo_data});
+ const auto nfc_state = tag_info.uuid_length == 0 ? Common::Input::NfcState::AmiiboRemoved
+ : Common::Input::NfcState::NewAmiibo;
+
+ const Common::Input::NfcStatus nfc_status{
+ .state = nfc_state,
+ .uuid_length = tag_info.uuid_length,
+ .protocol = tag_info.protocol,
+ .tag_type = tag_info.tag_type,
+ .uuid = tag_info.uuid,
+ };
+
+ SetNfc(identifier, nfc_status);
}
void Joycons::OnCameraUpdate(std::size_t port, const std::vector<u8>& camera_data,
@@ -726,4 +826,18 @@ std::string Joycons::JoyconName(Joycon::ControllerType type) const {
return "Unknown Switch Controller";
}
}
+
+Common::Input::NfcState Joycons::TranslateDriverResult(Common::Input::DriverResult result) const {
+ switch (result) {
+ case Common::Input::DriverResult::Success:
+ return Common::Input::NfcState::Success;
+ case Common::Input::DriverResult::Disabled:
+ return Common::Input::NfcState::WrongDeviceState;
+ case Common::Input::DriverResult::NotSupported:
+ return Common::Input::NfcState::NotSupported;
+ default:
+ return Common::Input::NfcState::Unknown;
+ }
+}
+
} // namespace InputCommon
diff --git a/src/input_common/drivers/joycon.h b/src/input_common/drivers/joycon.h
index e3f0ad78f..112e970e1 100644
--- a/src/input_common/drivers/joycon.h
+++ b/src/input_common/drivers/joycon.h
@@ -15,8 +15,8 @@ using SerialNumber = std::array<u8, 15>;
struct Battery;
struct Color;
struct MotionData;
+struct TagInfo;
enum class ControllerType : u8;
-enum class DriverResult;
enum class IrsResolution;
class JoyconDriver;
} // namespace InputCommon::Joycon
@@ -39,9 +39,18 @@ public:
Common::Input::DriverResult SetCameraFormat(const PadIdentifier& identifier,
Common::Input::CameraFormat camera_format) override;
- Common::Input::NfcState SupportsNfc(const PadIdentifier& identifier_) const override;
- Common::Input::NfcState WriteNfcData(const PadIdentifier& identifier_,
+ Common::Input::NfcState SupportsNfc(const PadIdentifier& identifier) const override;
+ Common::Input::NfcState StartNfcPolling(const PadIdentifier& identifier) override;
+ Common::Input::NfcState StopNfcPolling(const PadIdentifier& identifier) override;
+ Common::Input::NfcState ReadAmiiboData(const PadIdentifier& identifier,
+ std::vector<u8>& out_data) override;
+ Common::Input::NfcState WriteNfcData(const PadIdentifier& identifier,
const std::vector<u8>& data) override;
+ Common::Input::NfcState ReadMifareData(const PadIdentifier& identifier,
+ const Common::Input::MifareRequest& request,
+ Common::Input::MifareRequest& out_data) override;
+ Common::Input::NfcState WriteMifareData(const PadIdentifier& identifier,
+ const Common::Input::MifareRequest& request) override;
Common::Input::DriverResult SetPollingMode(
const PadIdentifier& identifier, const Common::Input::PollingMode polling_mode) override;
@@ -82,7 +91,7 @@ private:
const Joycon::MotionData& value);
void OnRingConUpdate(f32 ring_data);
void OnAmiiboUpdate(std::size_t port, Joycon::ControllerType type,
- const std::vector<u8>& amiibo_data);
+ const Joycon::TagInfo& amiibo_data);
void OnCameraUpdate(std::size_t port, const std::vector<u8>& camera_data,
Joycon::IrsResolution format);
@@ -102,6 +111,8 @@ private:
/// Returns the name of the device in text format
std::string JoyconName(Joycon::ControllerType type) const;
+ Common::Input::NfcState TranslateDriverResult(Common::Input::DriverResult result) const;
+
std::jthread scan_thread;
// Joycon types are split by type to ease supporting dualjoycon configurations
diff --git a/src/input_common/drivers/mouse.cpp b/src/input_common/drivers/mouse.cpp
index 0c9f642bb..f07cf8a0e 100644
--- a/src/input_common/drivers/mouse.cpp
+++ b/src/input_common/drivers/mouse.cpp
@@ -76,9 +76,6 @@ void Mouse::UpdateThread(std::stop_token stop_token) {
UpdateStickInput();
UpdateMotionInput();
- if (mouse_panning_timeout++ > 20) {
- StopPanning();
- }
std::this_thread::sleep_for(std::chrono::milliseconds(update_time));
}
}
@@ -88,18 +85,45 @@ void Mouse::UpdateStickInput() {
return;
}
- const float sensitivity =
- Settings::values.mouse_panning_sensitivity.GetValue() * default_stick_sensitivity;
+ const float length = last_mouse_change.Length();
- // Slow movement by 4%
- last_mouse_change *= 0.96f;
- SetAxis(identifier, mouse_axis_x, last_mouse_change.x * sensitivity);
- SetAxis(identifier, mouse_axis_y, -last_mouse_change.y * sensitivity);
+ // Prevent input from exceeding the max range (1.0f) too much,
+ // but allow some room to make it easier to sustain
+ if (length > 1.2f) {
+ last_mouse_change /= length;
+ last_mouse_change *= 1.2f;
+ }
+
+ auto mouse_change = last_mouse_change;
+
+ // Bind the mouse change to [0 <= deadzone_counterweight <= 1,1]
+ if (length < 1.0f) {
+ const float deadzone_h_counterweight =
+ Settings::values.mouse_panning_deadzone_x_counterweight.GetValue();
+ const float deadzone_v_counterweight =
+ Settings::values.mouse_panning_deadzone_y_counterweight.GetValue();
+ mouse_change /= length;
+ mouse_change.x *= length + (1 - length) * deadzone_h_counterweight * 0.01f;
+ mouse_change.y *= length + (1 - length) * deadzone_v_counterweight * 0.01f;
+ }
+
+ SetAxis(identifier, mouse_axis_x, mouse_change.x);
+ SetAxis(identifier, mouse_axis_y, -mouse_change.y);
+
+ // Decay input over time
+ const float clamped_length = std::min(1.0f, length);
+ const float decay_strength = Settings::values.mouse_panning_decay_strength.GetValue();
+ const float decay = 1 - clamped_length * clamped_length * decay_strength * 0.01f;
+ const float min_decay = Settings::values.mouse_panning_min_decay.GetValue();
+ const float clamped_decay = std::min(1 - min_decay / 100.0f, decay);
+ last_mouse_change *= clamped_decay;
}
void Mouse::UpdateMotionInput() {
- const float sensitivity =
- Settings::values.mouse_panning_sensitivity.GetValue() * default_motion_sensitivity;
+ // This may need its own sensitivity instead of using the average
+ const float sensitivity = (Settings::values.mouse_panning_x_sensitivity.GetValue() +
+ Settings::values.mouse_panning_y_sensitivity.GetValue()) /
+ 2.0f * default_motion_sensitivity;
const float rotation_velocity = std::sqrt(last_motion_change.x * last_motion_change.x +
last_motion_change.y * last_motion_change.y);
@@ -131,49 +155,28 @@ void Mouse::UpdateMotionInput() {
void Mouse::Move(int x, int y, int center_x, int center_y) {
if (Settings::values.mouse_panning) {
- mouse_panning_timeout = 0;
-
- auto mouse_change =
+ const auto mouse_change =
(Common::MakeVec(x, y) - Common::MakeVec(center_x, center_y)).Cast<float>();
- last_motion_change += {-mouse_change.y, -mouse_change.x, 0};
-
- const auto move_distance = mouse_change.Length();
- if (move_distance == 0) {
- return;
- }
+ const float x_sensitivity =
+ Settings::values.mouse_panning_x_sensitivity.GetValue() * default_stick_sensitivity;
+ const float y_sensitivity =
+ Settings::values.mouse_panning_y_sensitivity.GetValue() * default_stick_sensitivity;
- // Make slow movements at least 3 units on length
- if (move_distance < 3.0f) {
- // Normalize value
- mouse_change /= move_distance;
- mouse_change *= 3.0f;
- }
-
- // Average mouse movements
- last_mouse_change = (last_mouse_change * 0.91f) + (mouse_change * 0.09f);
-
- const auto last_move_distance = last_mouse_change.Length();
-
- // Make fast movements clamp to 8 units on length
- if (last_move_distance > 8.0f) {
- // Normalize value
- last_mouse_change /= last_move_distance;
- last_mouse_change *= 8.0f;
- }
-
- // Ignore average if it's less than 1 unit and use current movement value
- if (last_move_distance < 1.0f) {
- last_mouse_change = mouse_change / mouse_change.Length();
- }
+ last_motion_change += {-mouse_change.y, -mouse_change.x, 0};
+ last_mouse_change.x += mouse_change.x * x_sensitivity * 0.09f;
+ last_mouse_change.y += mouse_change.y * y_sensitivity * 0.09f;
return;
}
if (button_pressed) {
const auto mouse_move = Common::MakeVec<int>(x, y) - mouse_origin;
- const float sensitivity = Settings::values.mouse_panning_sensitivity.GetValue() * 0.0012f;
- SetAxis(identifier, mouse_axis_x, static_cast<float>(mouse_move.x) * sensitivity);
- SetAxis(identifier, mouse_axis_y, static_cast<float>(-mouse_move.y) * sensitivity);
+ const float x_sensitivity = Settings::values.mouse_panning_x_sensitivity.GetValue();
+ const float y_sensitivity = Settings::values.mouse_panning_y_sensitivity.GetValue();
+ SetAxis(identifier, mouse_axis_x,
+ static_cast<float>(mouse_move.x) * x_sensitivity * 0.0012f);
+ SetAxis(identifier, mouse_axis_y,
+ static_cast<float>(-mouse_move.y) * y_sensitivity * 0.0012f);
last_motion_change = {
static_cast<float>(-mouse_move.y) / 50.0f,
@@ -241,10 +244,6 @@ void Mouse::ReleaseAllButtons() {
button_pressed = false;
}
-void Mouse::StopPanning() {
- last_mouse_change = {};
-}
-
std::vector<Common::ParamPackage> Mouse::GetInputDevices() const {
std::vector<Common::ParamPackage> devices;
devices.emplace_back(Common::ParamPackage{
diff --git a/src/input_common/drivers/mouse.h b/src/input_common/drivers/mouse.h
index b872c7a0f..0e8edcce1 100644
--- a/src/input_common/drivers/mouse.h
+++ b/src/input_common/drivers/mouse.h
@@ -98,7 +98,6 @@ private:
void UpdateThread(std::stop_token stop_token);
void UpdateStickInput();
void UpdateMotionInput();
- void StopPanning();
Common::Input::ButtonNames GetUIButtonName(const Common::ParamPackage& params) const;
@@ -108,7 +107,6 @@ private:
Common::Vec3<float> last_motion_change;
Common::Vec2<int> wheel_position;
bool button_pressed;
- int mouse_panning_timeout{};
std::jthread update_thread;
};
diff --git a/src/input_common/drivers/sdl_driver.cpp b/src/input_common/drivers/sdl_driver.cpp
index 9a0439bb5..9f26392b1 100644
--- a/src/input_common/drivers/sdl_driver.cpp
+++ b/src/input_common/drivers/sdl_driver.cpp
@@ -150,6 +150,8 @@ public:
if (sdl_controller) {
const auto type = SDL_GameControllerGetType(sdl_controller.get());
return (type == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO) ||
+ (type == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT) ||
+ (type == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT) ||
(type == SDL_CONTROLLER_TYPE_PS5);
}
return false;
@@ -228,9 +230,8 @@ public:
return false;
}
- Common::Input::BatteryLevel GetBatteryLevel() {
- const auto level = SDL_JoystickCurrentPowerLevel(sdl_joystick.get());
- switch (level) {
+ Common::Input::BatteryLevel GetBatteryLevel(SDL_JoystickPowerLevel battery_level) {
+ switch (battery_level) {
case SDL_JOYSTICK_POWER_EMPTY:
return Common::Input::BatteryLevel::Empty;
case SDL_JOYSTICK_POWER_LOW:
@@ -378,7 +379,6 @@ void SDLDriver::InitJoystick(int joystick_index) {
if (joystick_map.find(guid) == joystick_map.end()) {
auto joystick = std::make_shared<SDLJoystick>(guid, 0, sdl_joystick, sdl_gamecontroller);
PreSetController(joystick->GetPadIdentifier());
- SetBattery(joystick->GetPadIdentifier(), joystick->GetBatteryLevel());
joystick->EnableMotion();
joystick_map[guid].emplace_back(std::move(joystick));
return;
@@ -398,7 +398,6 @@ void SDLDriver::InitJoystick(int joystick_index) {
const int port = static_cast<int>(joystick_guid_list.size());
auto joystick = std::make_shared<SDLJoystick>(guid, port, sdl_joystick, sdl_gamecontroller);
PreSetController(joystick->GetPadIdentifier());
- SetBattery(joystick->GetPadIdentifier(), joystick->GetBatteryLevel());
joystick->EnableMotion();
joystick_guid_list.emplace_back(std::move(joystick));
}
@@ -438,8 +437,6 @@ void SDLDriver::HandleGameControllerEvent(const SDL_Event& event) {
if (const auto joystick = GetSDLJoystickBySDLID(event.jbutton.which)) {
const PadIdentifier identifier = joystick->GetPadIdentifier();
SetButton(identifier, event.jbutton.button, true);
- // Battery doesn't trigger an event so just update every button press
- SetBattery(identifier, joystick->GetBatteryLevel());
}
break;
}
@@ -466,6 +463,13 @@ void SDLDriver::HandleGameControllerEvent(const SDL_Event& event) {
}
break;
}
+ case SDL_JOYBATTERYUPDATED: {
+ if (auto joystick = GetSDLJoystickBySDLID(event.jbattery.which)) {
+ const PadIdentifier identifier = joystick->GetPadIdentifier();
+ SetBattery(identifier, joystick->GetBatteryLevel(event.jbattery.level));
+ }
+ break;
+ }
case SDL_JOYDEVICEREMOVED:
LOG_DEBUG(Input, "Controller removed with Instance_ID {}", event.jdevice.which);
CloseJoystick(SDL_JoystickFromInstanceID(event.jdevice.which));
@@ -483,6 +487,10 @@ void SDLDriver::CloseJoysticks() {
}
SDLDriver::SDLDriver(std::string input_engine_) : InputEngine(std::move(input_engine_)) {
+ // Set our application name. Currently passed to DBus by SDL and visible to the user through
+ // their desktop environment.
+ SDL_SetHint(SDL_HINT_APP_NAME, "yuzu");
+
if (!Settings::values.enable_raw_input) {
// Disable raw input. When enabled this setting causes SDL to die when a web applet opens
SDL_SetHint(SDL_HINT_JOYSTICK_RAWINPUT, "0");
@@ -501,6 +509,9 @@ SDLDriver::SDLDriver(std::string input_engine_) : InputEngine(std::move(input_en
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS, "0");
} else {
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS, "1");
+ SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED, "0");
+ SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS, "0");
+ SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS, "1");
}
// Disable hidapi drivers for pro controllers when the custom joycon driver is enabled
@@ -508,8 +519,11 @@ SDLDriver::SDLDriver(std::string input_engine_) : InputEngine(std::move(input_en
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_SWITCH, "0");
} else {
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_SWITCH, "1");
+ SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED, "0");
}
+ SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED, "1");
+
// Disable hidapi driver for xbox. Already default on Windows, this causes conflict with native
// driver on Linux.
SDL_SetHint(SDL_HINT_JOYSTICK_HIDAPI_XBOX, "0");
@@ -789,7 +803,9 @@ ButtonMapping SDLDriver::GetButtonMappingForDevice(const Common::ParamPackage& p
// This list also excludes Screenshot since there's not really a mapping for that
ButtonBindings switch_to_sdl_button;
- if (SDL_GameControllerGetType(controller) == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO) {
+ if (SDL_GameControllerGetType(controller) == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO ||
+ SDL_GameControllerGetType(controller) == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT ||
+ SDL_GameControllerGetType(controller) == SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT) {
switch_to_sdl_button = GetNintendoButtonBinding(joystick);
} else {
switch_to_sdl_button = GetDefaultButtonBinding();
diff --git a/src/input_common/drivers/virtual_amiibo.cpp b/src/input_common/drivers/virtual_amiibo.cpp
index 6435b8af8..180eb53ef 100644
--- a/src/input_common/drivers/virtual_amiibo.cpp
+++ b/src/input_common/drivers/virtual_amiibo.cpp
@@ -29,14 +29,13 @@ Common::Input::DriverResult VirtualAmiibo::SetPollingMode(
switch (polling_mode) {
case Common::Input::PollingMode::NFC:
- if (state == State::Initialized) {
- state = State::WaitingForAmiibo;
- }
+ state = State::Initialized;
return Common::Input::DriverResult::Success;
default:
- if (state == State::AmiiboIsOpen) {
+ if (state == State::TagNearby) {
CloseAmiibo();
}
+ state = State::Disabled;
return Common::Input::DriverResult::NotSupported;
}
}
@@ -45,6 +44,39 @@ Common::Input::NfcState VirtualAmiibo::SupportsNfc(
[[maybe_unused]] const PadIdentifier& identifier_) const {
return Common::Input::NfcState::Success;
}
+Common::Input::NfcState VirtualAmiibo::StartNfcPolling(const PadIdentifier& identifier_) {
+ if (state != State::Initialized) {
+ return Common::Input::NfcState::WrongDeviceState;
+ }
+ state = State::WaitingForAmiibo;
+ return Common::Input::NfcState::Success;
+}
+
+Common::Input::NfcState VirtualAmiibo::StopNfcPolling(const PadIdentifier& identifier_) {
+ if (state == State::Disabled) {
+ return Common::Input::NfcState::WrongDeviceState;
+ }
+ if (state == State::TagNearby) {
+ CloseAmiibo();
+ }
+ state = State::Initialized;
+ return Common::Input::NfcState::Success;
+}
+
+Common::Input::NfcState VirtualAmiibo::ReadAmiiboData(const PadIdentifier& identifier_,
+ std::vector<u8>& out_data) {
+ if (state != State::TagNearby) {
+ return Common::Input::NfcState::WrongDeviceState;
+ }
+
+ if (status.tag_type != 1U << 1) {
+ return Common::Input::NfcState::InvalidTagType;
+ }
+
+ out_data.resize(nfc_data.size());
+ memcpy(out_data.data(), nfc_data.data(), nfc_data.size());
+ return Common::Input::NfcState::Success;
+}
Common::Input::NfcState VirtualAmiibo::WriteNfcData(
[[maybe_unused]] const PadIdentifier& identifier_, const std::vector<u8>& data) {
@@ -66,6 +98,69 @@ Common::Input::NfcState VirtualAmiibo::WriteNfcData(
return Common::Input::NfcState::Success;
}
+Common::Input::NfcState VirtualAmiibo::ReadMifareData(const PadIdentifier& identifier_,
+ const Common::Input::MifareRequest& request,
+ Common::Input::MifareRequest& out_data) {
+ if (state != State::TagNearby) {
+ return Common::Input::NfcState::WrongDeviceState;
+ }
+
+ if (status.tag_type != 1U << 6) {
+ return Common::Input::NfcState::InvalidTagType;
+ }
+
+ for (std::size_t i = 0; i < request.data.size(); i++) {
+ if (request.data[i].command == 0) {
+ continue;
+ }
+ out_data.data[i].command = request.data[i].command;
+ out_data.data[i].sector = request.data[i].sector;
+
+ const std::size_t sector_index =
+ request.data[i].sector * sizeof(Common::Input::MifareData::data);
+
+ if (nfc_data.size() < sector_index + sizeof(Common::Input::MifareData::data)) {
+ return Common::Input::NfcState::WriteFailed;
+ }
+
+ // Ignore the sector key as we don't support it
+ memcpy(out_data.data[i].data.data(), nfc_data.data() + sector_index,
+ sizeof(Common::Input::MifareData::data));
+ }
+
+ return Common::Input::NfcState::Success;
+}
+
+Common::Input::NfcState VirtualAmiibo::WriteMifareData(
+ const PadIdentifier& identifier_, const Common::Input::MifareRequest& request) {
+ if (state != State::TagNearby) {
+ return Common::Input::NfcState::WrongDeviceState;
+ }
+
+ if (status.tag_type != 1U << 6) {
+ return Common::Input::NfcState::InvalidTagType;
+ }
+
+ for (std::size_t i = 0; i < request.data.size(); i++) {
+ if (request.data[i].command == 0) {
+ continue;
+ }
+
+ const std::size_t sector_index =
+ request.data[i].sector * sizeof(Common::Input::MifareData::data);
+
+ if (nfc_data.size() < sector_index + sizeof(Common::Input::MifareData::data)) {
+ return Common::Input::NfcState::WriteFailed;
+ }
+
+ // Ignore the sector key as we don't support it
+ memcpy(nfc_data.data() + sector_index, request.data[i].data.data(),
+ sizeof(Common::Input::MifareData::data));
+ }
+
+ return Common::Input::NfcState::Success;
+}
+
VirtualAmiibo::State VirtualAmiibo::GetCurrentState() const {
return state;
}
@@ -112,23 +207,31 @@ VirtualAmiibo::Info VirtualAmiibo::LoadAmiibo(std::span<u8> data) {
case AmiiboSizeWithoutPassword:
case AmiiboSizeWithSignature:
nfc_data.resize(AmiiboSize);
+ status.tag_type = 1U << 1;
+ status.uuid_length = 7;
break;
case MifareSize:
nfc_data.resize(MifareSize);
+ status.tag_type = 1U << 6;
+ status.uuid_length = 4;
break;
default:
return Info::NotAnAmiibo;
}
- state = State::AmiiboIsOpen;
+ status.uuid = {};
+ status.protocol = 1;
+ state = State::TagNearby;
+ status.state = Common::Input::NfcState::NewAmiibo,
memcpy(nfc_data.data(), data.data(), data.size_bytes());
- SetNfc(identifier, {Common::Input::NfcState::NewAmiibo, nfc_data});
+ memcpy(status.uuid.data(), nfc_data.data(), status.uuid_length);
+ SetNfc(identifier, status);
return Info::Success;
}
VirtualAmiibo::Info VirtualAmiibo::ReloadAmiibo() {
- if (state == State::AmiiboIsOpen) {
- SetNfc(identifier, {Common::Input::NfcState::NewAmiibo, nfc_data});
+ if (state == State::TagNearby) {
+ SetNfc(identifier, status);
return Info::Success;
}
@@ -136,9 +239,14 @@ VirtualAmiibo::Info VirtualAmiibo::ReloadAmiibo() {
}
VirtualAmiibo::Info VirtualAmiibo::CloseAmiibo() {
- state = polling_mode == Common::Input::PollingMode::NFC ? State::WaitingForAmiibo
- : State::Initialized;
- SetNfc(identifier, {Common::Input::NfcState::AmiiboRemoved, {}});
+ if (state != State::TagNearby) {
+ return Info::Success;
+ }
+
+ state = State::WaitingForAmiibo;
+ status.state = Common::Input::NfcState::AmiiboRemoved;
+ SetNfc(identifier, status);
+ status.tag_type = 0;
return Info::Success;
}
diff --git a/src/input_common/drivers/virtual_amiibo.h b/src/input_common/drivers/virtual_amiibo.h
index 09ca09e68..490f38e05 100644
--- a/src/input_common/drivers/virtual_amiibo.h
+++ b/src/input_common/drivers/virtual_amiibo.h
@@ -20,9 +20,10 @@ namespace InputCommon {
class VirtualAmiibo final : public InputEngine {
public:
enum class State {
+ Disabled,
Initialized,
WaitingForAmiibo,
- AmiiboIsOpen,
+ TagNearby,
};
enum class Info {
@@ -41,9 +42,17 @@ public:
const PadIdentifier& identifier_, const Common::Input::PollingMode polling_mode_) override;
Common::Input::NfcState SupportsNfc(const PadIdentifier& identifier_) const override;
-
+ Common::Input::NfcState StartNfcPolling(const PadIdentifier& identifier_) override;
+ Common::Input::NfcState StopNfcPolling(const PadIdentifier& identifier_) override;
+ Common::Input::NfcState ReadAmiiboData(const PadIdentifier& identifier_,
+ std::vector<u8>& out_data) override;
Common::Input::NfcState WriteNfcData(const PadIdentifier& identifier_,
const std::vector<u8>& data) override;
+ Common::Input::NfcState ReadMifareData(const PadIdentifier& identifier_,
+ const Common::Input::MifareRequest& data,
+ Common::Input::MifareRequest& out_data) override;
+ Common::Input::NfcState WriteMifareData(const PadIdentifier& identifier_,
+ const Common::Input::MifareRequest& data) override;
State GetCurrentState() const;
@@ -61,8 +70,9 @@ private:
static constexpr std::size_t MifareSize = 0x400;
std::string file_path{};
- State state{State::Initialized};
+ State state{State::Disabled};
std::vector<u8> nfc_data;
+ Common::Input::NfcStatus status;
Common::Input::PollingMode polling_mode{Common::Input::PollingMode::Passive};
};
} // namespace InputCommon
diff --git a/src/input_common/helpers/joycon_driver.cpp b/src/input_common/helpers/joycon_driver.cpp
index 95106f16d..cf51f3481 100644
--- a/src/input_common/helpers/joycon_driver.cpp
+++ b/src/input_common/helpers/joycon_driver.cpp
@@ -1,7 +1,9 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "common/input.h"
#include "common/logging/log.h"
+#include "common/scope_exit.h"
#include "common/swap.h"
#include "common/thread.h"
#include "input_common/helpers/joycon_driver.h"
@@ -27,13 +29,13 @@ void JoyconDriver::Stop() {
input_thread = {};
}
-DriverResult JoyconDriver::RequestDeviceAccess(SDL_hid_device_info* device_info) {
+Common::Input::DriverResult JoyconDriver::RequestDeviceAccess(SDL_hid_device_info* device_info) {
std::scoped_lock lock{mutex};
handle_device_type = ControllerType::None;
GetDeviceType(device_info, handle_device_type);
if (handle_device_type == ControllerType::None) {
- return DriverResult::UnsupportedControllerType;
+ return Common::Input::DriverResult::UnsupportedControllerType;
}
hidapi_handle->handle =
@@ -42,15 +44,15 @@ DriverResult JoyconDriver::RequestDeviceAccess(SDL_hid_device_info* device_info)
if (!hidapi_handle->handle) {
LOG_ERROR(Input, "Yuzu can't gain access to this device: ID {:04X}:{:04X}.",
device_info->vendor_id, device_info->product_id);
- return DriverResult::HandleInUse;
+ return Common::Input::DriverResult::HandleInUse;
}
SDL_hid_set_nonblocking(hidapi_handle->handle, 1);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconDriver::InitializeDevice() {
+Common::Input::DriverResult JoyconDriver::InitializeDevice() {
if (!hidapi_handle->handle) {
- return DriverResult::InvalidHandle;
+ return Common::Input::DriverResult::InvalidHandle;
}
std::scoped_lock lock{mutex};
disable_input_thread = true;
@@ -71,6 +73,7 @@ DriverResult JoyconDriver::InitializeDevice() {
nfc_enabled = false;
passive_enabled = false;
irs_enabled = false;
+ input_only_device = false;
gyro_sensitivity = Joycon::GyroSensitivity::DPS2000;
gyro_performance = Joycon::GyroPerformance::HZ833;
accelerometer_sensitivity = Joycon::AccelerometerSensitivity::G8;
@@ -85,16 +88,23 @@ DriverResult JoyconDriver::InitializeDevice() {
rumble_protocol = std::make_unique<RumbleProtocol>(hidapi_handle);
// Get fixed joycon info
- generic_protocol->GetVersionNumber(version);
- generic_protocol->SetLowPowerMode(false);
- generic_protocol->GetColor(color);
- if (handle_device_type == ControllerType::Pro) {
- // Some 3rd party controllers aren't pro controllers
- generic_protocol->GetControllerType(device_type);
- } else {
- device_type = handle_device_type;
+ if (generic_protocol->GetVersionNumber(version) != Common::Input::DriverResult::Success) {
+ // If this command fails the device doesn't accept configuration commands
+ input_only_device = true;
+ }
+
+ if (!input_only_device) {
+ generic_protocol->SetLowPowerMode(false);
+ generic_protocol->GetColor(color);
+ if (handle_device_type == ControllerType::Pro) {
+ // Some 3rd party controllers aren't pro controllers
+ generic_protocol->GetControllerType(device_type);
+ } else {
+ device_type = handle_device_type;
+ }
+ generic_protocol->GetSerialNumber(serial_number);
}
- generic_protocol->GetSerialNumber(serial_number);
+
supported_features = GetSupportedFeatures();
// Get Calibration data
@@ -112,7 +122,7 @@ DriverResult JoyconDriver::InitializeDevice() {
joycon_poller = std::make_unique<JoyconPoller>(device_type, left_stick_calibration,
right_stick_calibration, motion_calibration);
- // Start pooling for data
+ // Start polling for data
is_connected = true;
if (!input_thread_running) {
input_thread =
@@ -120,7 +130,7 @@ DriverResult JoyconDriver::InitializeDevice() {
}
disable_input_thread = false;
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
void JoyconDriver::InputThread(std::stop_token stop_token) {
@@ -208,7 +218,7 @@ void JoyconDriver::OnNewData(std::span<u8> buffer) {
joycon_poller->UpdateCamera(irs_protocol->GetImage(), irs_protocol->GetIrsFormat());
}
- if (nfc_protocol->IsEnabled()) {
+ if (nfc_protocol->IsPolling()) {
if (amiibo_detected) {
if (!nfc_protocol->HasAmiibo()) {
joycon_poller->UpdateAmiibo({});
@@ -218,10 +228,10 @@ void JoyconDriver::OnNewData(std::span<u8> buffer) {
}
if (!amiibo_detected) {
- std::vector<u8> data(0x21C);
- const auto result = nfc_protocol->ScanAmiibo(data);
- if (result == DriverResult::Success) {
- joycon_poller->UpdateAmiibo(data);
+ Joycon::TagInfo tag_info;
+ const auto result = nfc_protocol->GetTagInfo(tag_info);
+ if (result == Common::Input::DriverResult::Success) {
+ joycon_poller->UpdateAmiibo(tag_info);
amiibo_detected = true;
}
}
@@ -246,7 +256,8 @@ void JoyconDriver::OnNewData(std::span<u8> buffer) {
}
}
-DriverResult JoyconDriver::SetPollingMode() {
+Common::Input::DriverResult JoyconDriver::SetPollingMode() {
+ SCOPE_EXIT({ disable_input_thread = false; });
disable_input_thread = true;
rumble_protocol->EnableRumble(vibration_enabled && supported_features.vibration);
@@ -259,6 +270,10 @@ DriverResult JoyconDriver::SetPollingMode() {
generic_protocol->EnableImu(false);
}
+ if (input_only_device) {
+ return Common::Input::DriverResult::NotSupported;
+ }
+
if (irs_protocol->IsEnabled()) {
irs_protocol->DisableIrs();
}
@@ -275,46 +290,42 @@ DriverResult JoyconDriver::SetPollingMode() {
if (irs_enabled && supported_features.irs) {
auto result = irs_protocol->EnableIrs();
- if (result == DriverResult::Success) {
- disable_input_thread = false;
+ if (result == Common::Input::DriverResult::Success) {
return result;
}
irs_protocol->DisableIrs();
LOG_ERROR(Input, "Error enabling IRS");
+ return result;
}
if (nfc_enabled && supported_features.nfc) {
auto result = nfc_protocol->EnableNfc();
- if (result == DriverResult::Success) {
- result = nfc_protocol->StartNFCPollingMode();
- }
- if (result == DriverResult::Success) {
- disable_input_thread = false;
+ if (result == Common::Input::DriverResult::Success) {
return result;
}
nfc_protocol->DisableNfc();
LOG_ERROR(Input, "Error enabling NFC");
+ return result;
}
if (hidbus_enabled && supported_features.hidbus) {
auto result = ring_protocol->EnableRingCon();
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = ring_protocol->StartRingconPolling();
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
ring_connected = true;
- disable_input_thread = false;
return result;
}
ring_connected = false;
ring_protocol->DisableRingCon();
LOG_ERROR(Input, "Error enabling Ringcon");
+ return result;
}
if (passive_enabled && supported_features.passive) {
const auto result = generic_protocol->EnablePassiveMode();
- if (result == DriverResult::Success) {
- disable_input_thread = false;
+ if (result == Common::Input::DriverResult::Success) {
return result;
}
LOG_ERROR(Input, "Error enabling passive mode");
@@ -322,13 +333,12 @@ DriverResult JoyconDriver::SetPollingMode() {
// Default Mode
const auto result = generic_protocol->EnableActiveMode();
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
LOG_ERROR(Input, "Error enabling active mode");
}
// Switch calls this function after enabling active mode
generic_protocol->TriggersElapsed();
- disable_input_thread = false;
return result;
}
@@ -339,6 +349,10 @@ JoyconDriver::SupportedFeatures JoyconDriver::GetSupportedFeatures() {
.vibration = true,
};
+ if (input_only_device) {
+ return features;
+ }
+
if (device_type == ControllerType::Right) {
features.nfc = true;
features.irs = true;
@@ -383,26 +397,26 @@ bool JoyconDriver::IsPayloadCorrect(int status, std::span<const u8> buffer) {
return true;
}
-DriverResult JoyconDriver::SetVibration(const VibrationValue& vibration) {
+Common::Input::DriverResult JoyconDriver::SetVibration(const VibrationValue& vibration) {
std::scoped_lock lock{mutex};
if (disable_input_thread) {
- return DriverResult::HandleInUse;
+ return Common::Input::DriverResult::HandleInUse;
}
return rumble_protocol->SendVibration(vibration);
}
-DriverResult JoyconDriver::SetLedConfig(u8 led_pattern) {
+Common::Input::DriverResult JoyconDriver::SetLedConfig(u8 led_pattern) {
std::scoped_lock lock{mutex};
if (disable_input_thread) {
- return DriverResult::HandleInUse;
+ return Common::Input::DriverResult::HandleInUse;
}
return generic_protocol->SetLedPattern(led_pattern);
}
-DriverResult JoyconDriver::SetIrsConfig(IrsMode mode_, IrsResolution format_) {
+Common::Input::DriverResult JoyconDriver::SetIrsConfig(IrsMode mode_, IrsResolution format_) {
std::scoped_lock lock{mutex};
if (disable_input_thread) {
- return DriverResult::HandleInUse;
+ return Common::Input::DriverResult::HandleInUse;
}
disable_input_thread = true;
const auto result = irs_protocol->SetIrsConfig(mode_, format_);
@@ -410,7 +424,7 @@ DriverResult JoyconDriver::SetIrsConfig(IrsMode mode_, IrsResolution format_) {
return result;
}
-DriverResult JoyconDriver::SetPassiveMode() {
+Common::Input::DriverResult JoyconDriver::SetPassiveMode() {
std::scoped_lock lock{mutex};
motion_enabled = false;
hidbus_enabled = false;
@@ -420,7 +434,7 @@ DriverResult JoyconDriver::SetPassiveMode() {
return SetPollingMode();
}
-DriverResult JoyconDriver::SetActiveMode() {
+Common::Input::DriverResult JoyconDriver::SetActiveMode() {
if (is_ring_disabled_by_irs) {
is_ring_disabled_by_irs = false;
SetActiveMode();
@@ -436,11 +450,11 @@ DriverResult JoyconDriver::SetActiveMode() {
return SetPollingMode();
}
-DriverResult JoyconDriver::SetIrMode() {
+Common::Input::DriverResult JoyconDriver::SetIrMode() {
std::scoped_lock lock{mutex};
if (!supported_features.irs) {
- return DriverResult::NotSupported;
+ return Common::Input::DriverResult::NotSupported;
}
if (ring_connected) {
@@ -455,11 +469,11 @@ DriverResult JoyconDriver::SetIrMode() {
return SetPollingMode();
}
-DriverResult JoyconDriver::SetNfcMode() {
+Common::Input::DriverResult JoyconDriver::SetNfcMode() {
std::scoped_lock lock{mutex};
if (!supported_features.nfc) {
- return DriverResult::NotSupported;
+ return Common::Input::DriverResult::NotSupported;
}
motion_enabled = true;
@@ -470,11 +484,11 @@ DriverResult JoyconDriver::SetNfcMode() {
return SetPollingMode();
}
-DriverResult JoyconDriver::SetRingConMode() {
+Common::Input::DriverResult JoyconDriver::SetRingConMode() {
std::scoped_lock lock{mutex};
if (!supported_features.hidbus) {
- return DriverResult::NotSupported;
+ return Common::Input::DriverResult::NotSupported;
}
motion_enabled = true;
@@ -486,29 +500,130 @@ DriverResult JoyconDriver::SetRingConMode() {
const auto result = SetPollingMode();
if (!ring_connected) {
- return DriverResult::NoDeviceDetected;
+ return Common::Input::DriverResult::NoDeviceDetected;
+ }
+
+ return result;
+}
+
+Common::Input::DriverResult JoyconDriver::StartNfcPolling() {
+ std::scoped_lock lock{mutex};
+
+ if (!supported_features.nfc) {
+ return Common::Input::DriverResult::NotSupported;
+ }
+ if (!nfc_protocol->IsEnabled()) {
+ return Common::Input::DriverResult::Disabled;
}
+ disable_input_thread = true;
+ const auto result = nfc_protocol->StartNFCPollingMode();
+ disable_input_thread = false;
+
return result;
}
-DriverResult JoyconDriver::WriteNfcData(std::span<const u8> data) {
+Common::Input::DriverResult JoyconDriver::StopNfcPolling() {
std::scoped_lock lock{mutex};
+
+ if (!supported_features.nfc) {
+ return Common::Input::DriverResult::NotSupported;
+ }
+ if (!nfc_protocol->IsEnabled()) {
+ return Common::Input::DriverResult::Disabled;
+ }
+
disable_input_thread = true;
+ const auto result = nfc_protocol->StopNFCPollingMode();
+ disable_input_thread = false;
+
+ if (amiibo_detected) {
+ amiibo_detected = false;
+ joycon_poller->UpdateAmiibo({});
+ }
+
+ return result;
+}
+
+Common::Input::DriverResult JoyconDriver::ReadAmiiboData(std::vector<u8>& out_data) {
+ std::scoped_lock lock{mutex};
if (!supported_features.nfc) {
- return DriverResult::NotSupported;
+ return Common::Input::DriverResult::NotSupported;
}
if (!nfc_protocol->IsEnabled()) {
- return DriverResult::Disabled;
+ return Common::Input::DriverResult::Disabled;
}
if (!amiibo_detected) {
- return DriverResult::ErrorWritingData;
+ return Common::Input::DriverResult::ErrorWritingData;
}
+ out_data.resize(0x21C);
+ disable_input_thread = true;
+ const auto result = nfc_protocol->ReadAmiibo(out_data);
+ disable_input_thread = false;
+
+ return result;
+}
+
+Common::Input::DriverResult JoyconDriver::WriteNfcData(std::span<const u8> data) {
+ std::scoped_lock lock{mutex};
+
+ if (!supported_features.nfc) {
+ return Common::Input::DriverResult::NotSupported;
+ }
+ if (!nfc_protocol->IsEnabled()) {
+ return Common::Input::DriverResult::Disabled;
+ }
+ if (!amiibo_detected) {
+ return Common::Input::DriverResult::ErrorWritingData;
+ }
+
+ disable_input_thread = true;
const auto result = nfc_protocol->WriteAmiibo(data);
+ disable_input_thread = false;
+
+ return result;
+}
+Common::Input::DriverResult JoyconDriver::ReadMifareData(std::span<const MifareReadChunk> data,
+ std::span<MifareReadData> out_data) {
+ std::scoped_lock lock{mutex};
+
+ if (!supported_features.nfc) {
+ return Common::Input::DriverResult::NotSupported;
+ }
+ if (!nfc_protocol->IsEnabled()) {
+ return Common::Input::DriverResult::Disabled;
+ }
+ if (!amiibo_detected) {
+ return Common::Input::DriverResult::ErrorWritingData;
+ }
+
+ disable_input_thread = true;
+ const auto result = nfc_protocol->ReadMifare(data, out_data);
disable_input_thread = false;
+
+ return result;
+}
+
+Common::Input::DriverResult JoyconDriver::WriteMifareData(std::span<const MifareWriteChunk> data) {
+ std::scoped_lock lock{mutex};
+
+ if (!supported_features.nfc) {
+ return Common::Input::DriverResult::NotSupported;
+ }
+ if (!nfc_protocol->IsEnabled()) {
+ return Common::Input::DriverResult::Disabled;
+ }
+ if (!amiibo_detected) {
+ return Common::Input::DriverResult::ErrorWritingData;
+ }
+
+ disable_input_thread = true;
+ const auto result = nfc_protocol->WriteMifare(data);
+ disable_input_thread = false;
+
return result;
}
@@ -561,8 +676,8 @@ void JoyconDriver::SetCallbacks(const JoyconCallbacks& callbacks) {
joycon_poller->SetCallbacks(callbacks);
}
-DriverResult JoyconDriver::GetDeviceType(SDL_hid_device_info* device_info,
- ControllerType& controller_type) {
+Common::Input::DriverResult JoyconDriver::GetDeviceType(SDL_hid_device_info* device_info,
+ ControllerType& controller_type) {
static constexpr std::array<std::pair<u32, ControllerType>, 6> supported_devices{
std::pair<u32, ControllerType>{0x2006, ControllerType::Left},
{0x2007, ControllerType::Right},
@@ -572,25 +687,25 @@ DriverResult JoyconDriver::GetDeviceType(SDL_hid_device_info* device_info,
controller_type = ControllerType::None;
if (device_info->vendor_id != nintendo_vendor_id) {
- return DriverResult::UnsupportedControllerType;
+ return Common::Input::DriverResult::UnsupportedControllerType;
}
for (const auto& [product_id, type] : supported_devices) {
if (device_info->product_id == static_cast<u16>(product_id)) {
controller_type = type;
- return Joycon::DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
}
- return Joycon::DriverResult::UnsupportedControllerType;
+ return Common::Input::DriverResult::UnsupportedControllerType;
}
-DriverResult JoyconDriver::GetSerialNumber(SDL_hid_device_info* device_info,
- SerialNumber& serial_number) {
+Common::Input::DriverResult JoyconDriver::GetSerialNumber(SDL_hid_device_info* device_info,
+ SerialNumber& serial_number) {
if (device_info->serial_number == nullptr) {
- return DriverResult::Unknown;
+ return Common::Input::DriverResult::Unknown;
}
std::memcpy(&serial_number, device_info->serial_number, 15);
- return Joycon::DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
} // namespace InputCommon::Joycon
diff --git a/src/input_common/helpers/joycon_driver.h b/src/input_common/helpers/joycon_driver.h
index e9b2fccbb..335e12cc3 100644
--- a/src/input_common/helpers/joycon_driver.h
+++ b/src/input_common/helpers/joycon_driver.h
@@ -11,6 +11,10 @@
#include "input_common/helpers/joycon_protocol/joycon_types.h"
+namespace Common::Input {
+enum class DriverResult;
+}
+
namespace InputCommon::Joycon {
class CalibrationProtocol;
class GenericProtocol;
@@ -26,8 +30,8 @@ public:
~JoyconDriver();
- DriverResult RequestDeviceAccess(SDL_hid_device_info* device_info);
- DriverResult InitializeDevice();
+ Common::Input::DriverResult RequestDeviceAccess(SDL_hid_device_info* device_info);
+ Common::Input::DriverResult InitializeDevice();
void Stop();
bool IsConnected() const;
@@ -41,25 +45,31 @@ public:
SerialNumber GetSerialNumber() const;
SerialNumber GetHandleSerialNumber() const;
- DriverResult SetVibration(const VibrationValue& vibration);
- DriverResult SetLedConfig(u8 led_pattern);
- DriverResult SetIrsConfig(IrsMode mode_, IrsResolution format_);
- DriverResult SetPassiveMode();
- DriverResult SetActiveMode();
- DriverResult SetIrMode();
- DriverResult SetNfcMode();
- DriverResult SetRingConMode();
- DriverResult WriteNfcData(std::span<const u8> data);
+ Common::Input::DriverResult SetVibration(const VibrationValue& vibration);
+ Common::Input::DriverResult SetLedConfig(u8 led_pattern);
+ Common::Input::DriverResult SetIrsConfig(IrsMode mode_, IrsResolution format_);
+ Common::Input::DriverResult SetPassiveMode();
+ Common::Input::DriverResult SetActiveMode();
+ Common::Input::DriverResult SetIrMode();
+ Common::Input::DriverResult SetNfcMode();
+ Common::Input::DriverResult SetRingConMode();
+ Common::Input::DriverResult StartNfcPolling();
+ Common::Input::DriverResult StopNfcPolling();
+ Common::Input::DriverResult ReadAmiiboData(std::vector<u8>& out_data);
+ Common::Input::DriverResult WriteNfcData(std::span<const u8> data);
+ Common::Input::DriverResult ReadMifareData(std::span<const MifareReadChunk> request,
+ std::span<MifareReadData> out_data);
+ Common::Input::DriverResult WriteMifareData(std::span<const MifareWriteChunk> request);
void SetCallbacks(const JoyconCallbacks& callbacks);
// Returns device type from hidapi handle
- static DriverResult GetDeviceType(SDL_hid_device_info* device_info,
- ControllerType& controller_type);
+ static Common::Input::DriverResult GetDeviceType(SDL_hid_device_info* device_info,
+ ControllerType& controller_type);
// Returns serial number from hidapi handle
- static DriverResult GetSerialNumber(SDL_hid_device_info* device_info,
- SerialNumber& serial_number);
+ static Common::Input::DriverResult GetSerialNumber(SDL_hid_device_info* device_info,
+ SerialNumber& serial_number);
private:
struct SupportedFeatures {
@@ -78,7 +88,7 @@ private:
void OnNewData(std::span<u8> buffer);
/// Updates device configuration to enable or disable features
- DriverResult SetPollingMode();
+ Common::Input::DriverResult SetPollingMode();
/// Returns true if input thread is valid and doesn't need to be stopped
bool IsInputThreadValid() const;
@@ -114,6 +124,7 @@ private:
// Hardware configuration
u8 leds{};
ReportMode mode{};
+ bool input_only_device{};
bool passive_enabled{}; // Low power mode, Ideal for multiple controllers at the same time
bool hidbus_enabled{}; // External device support
bool irs_enabled{}; // Infrared camera input
diff --git a/src/input_common/helpers/joycon_protocol/calibration.cpp b/src/input_common/helpers/joycon_protocol/calibration.cpp
index d8f040f75..1300ecaf5 100644
--- a/src/input_common/helpers/joycon_protocol/calibration.cpp
+++ b/src/input_common/helpers/joycon_protocol/calibration.cpp
@@ -3,6 +3,7 @@
#include <cstring>
+#include "common/input.h"
#include "input_common/helpers/joycon_protocol/calibration.h"
#include "input_common/helpers/joycon_protocol/joycon_types.h"
@@ -11,28 +12,29 @@ namespace InputCommon::Joycon {
CalibrationProtocol::CalibrationProtocol(std::shared_ptr<JoyconHandle> handle)
: JoyconCommonProtocol(std::move(handle)) {}
-DriverResult CalibrationProtocol::GetLeftJoyStickCalibration(JoyStickCalibration& calibration) {
+Common::Input::DriverResult CalibrationProtocol::GetLeftJoyStickCalibration(
+ JoyStickCalibration& calibration) {
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
JoystickLeftSpiCalibration spi_calibration{};
bool has_user_calibration = false;
calibration = {};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = HasUserCalibration(SpiAddress::USER_LEFT_MAGIC, has_user_calibration);
}
// Read User defined calibration
- if (result == DriverResult::Success && has_user_calibration) {
+ if (result == Common::Input::DriverResult::Success && has_user_calibration) {
result = ReadSPI(SpiAddress::USER_LEFT_DATA, spi_calibration);
}
// Read Factory calibration
- if (result == DriverResult::Success && !has_user_calibration) {
+ if (result == Common::Input::DriverResult::Success && !has_user_calibration) {
result = ReadSPI(SpiAddress::FACT_LEFT_DATA, spi_calibration);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
calibration.x.center = GetXAxisCalibrationValue(spi_calibration.center);
calibration.y.center = GetYAxisCalibrationValue(spi_calibration.center);
calibration.x.min = GetXAxisCalibrationValue(spi_calibration.min);
@@ -47,28 +49,29 @@ DriverResult CalibrationProtocol::GetLeftJoyStickCalibration(JoyStickCalibration
return result;
}
-DriverResult CalibrationProtocol::GetRightJoyStickCalibration(JoyStickCalibration& calibration) {
+Common::Input::DriverResult CalibrationProtocol::GetRightJoyStickCalibration(
+ JoyStickCalibration& calibration) {
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
JoystickRightSpiCalibration spi_calibration{};
bool has_user_calibration = false;
calibration = {};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = HasUserCalibration(SpiAddress::USER_RIGHT_MAGIC, has_user_calibration);
}
// Read User defined calibration
- if (result == DriverResult::Success && has_user_calibration) {
+ if (result == Common::Input::DriverResult::Success && has_user_calibration) {
result = ReadSPI(SpiAddress::USER_RIGHT_DATA, spi_calibration);
}
// Read Factory calibration
- if (result == DriverResult::Success && !has_user_calibration) {
+ if (result == Common::Input::DriverResult::Success && !has_user_calibration) {
result = ReadSPI(SpiAddress::FACT_RIGHT_DATA, spi_calibration);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
calibration.x.center = GetXAxisCalibrationValue(spi_calibration.center);
calibration.y.center = GetYAxisCalibrationValue(spi_calibration.center);
calibration.x.min = GetXAxisCalibrationValue(spi_calibration.min);
@@ -83,28 +86,28 @@ DriverResult CalibrationProtocol::GetRightJoyStickCalibration(JoyStickCalibratio
return result;
}
-DriverResult CalibrationProtocol::GetImuCalibration(MotionCalibration& calibration) {
+Common::Input::DriverResult CalibrationProtocol::GetImuCalibration(MotionCalibration& calibration) {
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
ImuSpiCalibration spi_calibration{};
bool has_user_calibration = false;
calibration = {};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = HasUserCalibration(SpiAddress::USER_IMU_MAGIC, has_user_calibration);
}
// Read User defined calibration
- if (result == DriverResult::Success && has_user_calibration) {
+ if (result == Common::Input::DriverResult::Success && has_user_calibration) {
result = ReadSPI(SpiAddress::USER_IMU_DATA, spi_calibration);
}
// Read Factory calibration
- if (result == DriverResult::Success && !has_user_calibration) {
+ if (result == Common::Input::DriverResult::Success && !has_user_calibration) {
result = ReadSPI(SpiAddress::FACT_IMU_DATA, spi_calibration);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
calibration.accelerometer[0].offset = spi_calibration.accelerometer_offset[0];
calibration.accelerometer[1].offset = spi_calibration.accelerometer_offset[1];
calibration.accelerometer[2].offset = spi_calibration.accelerometer_offset[2];
@@ -127,8 +130,8 @@ DriverResult CalibrationProtocol::GetImuCalibration(MotionCalibration& calibrati
return result;
}
-DriverResult CalibrationProtocol::GetRingCalibration(RingCalibration& calibration,
- s16 current_value) {
+Common::Input::DriverResult CalibrationProtocol::GetRingCalibration(RingCalibration& calibration,
+ s16 current_value) {
constexpr s16 DefaultRingRange{800};
// TODO: Get default calibration form ring itself
@@ -144,15 +147,15 @@ DriverResult CalibrationProtocol::GetRingCalibration(RingCalibration& calibratio
.max_value = ring_data_max,
.min_value = ring_data_min,
};
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult CalibrationProtocol::HasUserCalibration(SpiAddress address,
- bool& has_user_calibration) {
+Common::Input::DriverResult CalibrationProtocol::HasUserCalibration(SpiAddress address,
+ bool& has_user_calibration) {
MagicSpiCalibration spi_magic{};
- const DriverResult result{ReadSPI(address, spi_magic)};
+ const Common::Input::DriverResult result{ReadSPI(address, spi_magic)};
has_user_calibration = false;
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
has_user_calibration = spi_magic.first == CalibrationMagic::USR_MAGIC_0 &&
spi_magic.second == CalibrationMagic::USR_MAGIC_1;
}
diff --git a/src/input_common/helpers/joycon_protocol/calibration.h b/src/input_common/helpers/joycon_protocol/calibration.h
index c6fd0f729..82d94b366 100644
--- a/src/input_common/helpers/joycon_protocol/calibration.h
+++ b/src/input_common/helpers/joycon_protocol/calibration.h
@@ -12,8 +12,11 @@
#include "input_common/helpers/joycon_protocol/common_protocol.h"
-namespace InputCommon::Joycon {
+namespace Common::Input {
enum class DriverResult;
+}
+
+namespace InputCommon::Joycon {
struct JoyStickCalibration;
struct IMUCalibration;
struct JoyconHandle;
@@ -31,30 +34,30 @@ public:
* @param is_factory_calibration if true factory values will be returned
* @returns JoyStickCalibration of the left joystick
*/
- DriverResult GetLeftJoyStickCalibration(JoyStickCalibration& calibration);
+ Common::Input::DriverResult GetLeftJoyStickCalibration(JoyStickCalibration& calibration);
/**
* Sends a request to obtain the right stick calibration from memory
* @param is_factory_calibration if true factory values will be returned
* @returns JoyStickCalibration of the right joystick
*/
- DriverResult GetRightJoyStickCalibration(JoyStickCalibration& calibration);
+ Common::Input::DriverResult GetRightJoyStickCalibration(JoyStickCalibration& calibration);
/**
* Sends a request to obtain the motion calibration from memory
* @returns ImuCalibration of the motion sensor
*/
- DriverResult GetImuCalibration(MotionCalibration& calibration);
+ Common::Input::DriverResult GetImuCalibration(MotionCalibration& calibration);
/**
* Calculates on run time the proper calibration of the ring controller
* @returns RingCalibration of the ring sensor
*/
- DriverResult GetRingCalibration(RingCalibration& calibration, s16 current_value);
+ Common::Input::DriverResult GetRingCalibration(RingCalibration& calibration, s16 current_value);
private:
/// Returns true if the specified address corresponds to the magic value of user calibration
- DriverResult HasUserCalibration(SpiAddress address, bool& has_user_calibration);
+ Common::Input::DriverResult HasUserCalibration(SpiAddress address, bool& has_user_calibration);
/// Converts a raw calibration block to an u16 value containing the x axis value
u16 GetXAxisCalibrationValue(std::span<u8> block) const;
diff --git a/src/input_common/helpers/joycon_protocol/common_protocol.cpp b/src/input_common/helpers/joycon_protocol/common_protocol.cpp
index 51669261a..a6eecf980 100644
--- a/src/input_common/helpers/joycon_protocol/common_protocol.cpp
+++ b/src/input_common/helpers/joycon_protocol/common_protocol.cpp
@@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "common/input.h"
#include "common/logging/log.h"
#include "input_common/helpers/joycon_protocol/common_protocol.h"
@@ -21,10 +22,10 @@ void JoyconCommonProtocol::SetNonBlocking() {
SDL_hid_set_nonblocking(hidapi_handle->handle, 1);
}
-DriverResult JoyconCommonProtocol::GetDeviceType(ControllerType& controller_type) {
+Common::Input::DriverResult JoyconCommonProtocol::GetDeviceType(ControllerType& controller_type) {
const auto result = ReadSPI(SpiAddress::DEVICE_TYPE, controller_type);
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
// Fallback to 3rd party pro controllers
if (controller_type == ControllerType::None) {
controller_type = ControllerType::Pro;
@@ -34,12 +35,13 @@ DriverResult JoyconCommonProtocol::GetDeviceType(ControllerType& controller_type
return result;
}
-DriverResult JoyconCommonProtocol::CheckDeviceAccess(SDL_hid_device_info* device_info) {
+Common::Input::DriverResult JoyconCommonProtocol::CheckDeviceAccess(
+ SDL_hid_device_info* device_info) {
ControllerType controller_type{ControllerType::None};
const auto result = GetDeviceType(controller_type);
- if (result != DriverResult::Success || controller_type == ControllerType::None) {
- return DriverResult::UnsupportedControllerType;
+ if (result != Common::Input::DriverResult::Success || controller_type == ControllerType::None) {
+ return Common::Input::DriverResult::UnsupportedControllerType;
}
hidapi_handle->handle =
@@ -48,32 +50,32 @@ DriverResult JoyconCommonProtocol::CheckDeviceAccess(SDL_hid_device_info* device
if (!hidapi_handle->handle) {
LOG_ERROR(Input, "Yuzu can't gain access to this device: ID {:04X}:{:04X}.",
device_info->vendor_id, device_info->product_id);
- return DriverResult::HandleInUse;
+ return Common::Input::DriverResult::HandleInUse;
}
SetNonBlocking();
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconCommonProtocol::SetReportMode(ReportMode report_mode) {
+Common::Input::DriverResult JoyconCommonProtocol::SetReportMode(ReportMode report_mode) {
const std::array<u8, 1> buffer{static_cast<u8>(report_mode)};
return SendSubCommand(SubCommand::SET_REPORT_MODE, buffer);
}
-DriverResult JoyconCommonProtocol::SendRawData(std::span<const u8> buffer) {
+Common::Input::DriverResult JoyconCommonProtocol::SendRawData(std::span<const u8> buffer) {
const auto result = SDL_hid_write(hidapi_handle->handle, buffer.data(), buffer.size());
if (result == -1) {
- return DriverResult::ErrorWritingData;
+ return Common::Input::DriverResult::ErrorWritingData;
}
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconCommonProtocol::GetSubCommandResponse(SubCommand sc,
- SubCommandResponse& output) {
+Common::Input::DriverResult JoyconCommonProtocol::GetSubCommandResponse(
+ SubCommand sc, SubCommandResponse& output) {
constexpr int timeout_mili = 66;
- constexpr int MaxTries = 15;
+ constexpr int MaxTries = 10;
int tries = 0;
do {
@@ -84,16 +86,17 @@ DriverResult JoyconCommonProtocol::GetSubCommandResponse(SubCommand sc,
LOG_ERROR(Input, "No response from joycon");
}
if (tries++ > MaxTries) {
- return DriverResult::Timeout;
+ return Common::Input::DriverResult::Timeout;
}
} while (output.input_report.report_mode != ReportMode::SUBCMD_REPLY &&
output.sub_command != sc);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconCommonProtocol::SendSubCommand(SubCommand sc, std::span<const u8> buffer,
- SubCommandResponse& output) {
+Common::Input::DriverResult JoyconCommonProtocol::SendSubCommand(SubCommand sc,
+ std::span<const u8> buffer,
+ SubCommandResponse& output) {
SubCommandPacket packet{
.output_report = OutputReport::RUMBLE_AND_SUBCMD,
.packet_counter = GetCounter(),
@@ -102,28 +105,28 @@ DriverResult JoyconCommonProtocol::SendSubCommand(SubCommand sc, std::span<const
};
if (buffer.size() > packet.command_data.size()) {
- return DriverResult::InvalidParameters;
+ return Common::Input::DriverResult::InvalidParameters;
}
memcpy(packet.command_data.data(), buffer.data(), buffer.size());
auto result = SendData(packet);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
- result = GetSubCommandResponse(sc, output);
-
- return DriverResult::Success;
+ return GetSubCommandResponse(sc, output);
}
-DriverResult JoyconCommonProtocol::SendSubCommand(SubCommand sc, std::span<const u8> buffer) {
+Common::Input::DriverResult JoyconCommonProtocol::SendSubCommand(SubCommand sc,
+ std::span<const u8> buffer) {
SubCommandResponse output{};
return SendSubCommand(sc, buffer, output);
}
-DriverResult JoyconCommonProtocol::SendMCUCommand(SubCommand sc, std::span<const u8> buffer) {
+Common::Input::DriverResult JoyconCommonProtocol::SendMCUCommand(SubCommand sc,
+ std::span<const u8> buffer) {
SubCommandPacket packet{
.output_report = OutputReport::MCU_DATA,
.packet_counter = GetCounter(),
@@ -132,7 +135,7 @@ DriverResult JoyconCommonProtocol::SendMCUCommand(SubCommand sc, std::span<const
};
if (buffer.size() > packet.command_data.size()) {
- return DriverResult::InvalidParameters;
+ return Common::Input::DriverResult::InvalidParameters;
}
memcpy(packet.command_data.data(), buffer.data(), buffer.size());
@@ -140,7 +143,7 @@ DriverResult JoyconCommonProtocol::SendMCUCommand(SubCommand sc, std::span<const
return SendData(packet);
}
-DriverResult JoyconCommonProtocol::SendVibrationReport(std::span<const u8> buffer) {
+Common::Input::DriverResult JoyconCommonProtocol::SendVibrationReport(std::span<const u8> buffer) {
VibrationPacket packet{
.output_report = OutputReport::RUMBLE_ONLY,
.packet_counter = GetCounter(),
@@ -148,7 +151,7 @@ DriverResult JoyconCommonProtocol::SendVibrationReport(std::span<const u8> buffe
};
if (buffer.size() > packet.vibration_data.size()) {
- return DriverResult::InvalidParameters;
+ return Common::Input::DriverResult::InvalidParameters;
}
memcpy(packet.vibration_data.data(), buffer.data(), buffer.size());
@@ -156,9 +159,10 @@ DriverResult JoyconCommonProtocol::SendVibrationReport(std::span<const u8> buffe
return SendData(packet);
}
-DriverResult JoyconCommonProtocol::ReadRawSPI(SpiAddress addr, std::span<u8> output) {
+Common::Input::DriverResult JoyconCommonProtocol::ReadRawSPI(SpiAddress addr,
+ std::span<u8> output) {
constexpr std::size_t HeaderSize = 5;
- constexpr std::size_t MaxTries = 10;
+ constexpr std::size_t MaxTries = 5;
std::size_t tries = 0;
SubCommandResponse response{};
std::array<u8, sizeof(ReadSpiPacket)> buffer{};
@@ -170,36 +174,36 @@ DriverResult JoyconCommonProtocol::ReadRawSPI(SpiAddress addr, std::span<u8> out
memcpy(buffer.data(), &packet_data, sizeof(ReadSpiPacket));
do {
const auto result = SendSubCommand(SubCommand::SPI_FLASH_READ, buffer, response);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ > MaxTries) {
- return DriverResult::Timeout;
+ return Common::Input::DriverResult::Timeout;
}
} while (response.spi_address != addr);
if (response.command_data.size() < packet_data.size + HeaderSize) {
- return DriverResult::WrongReply;
+ return Common::Input::DriverResult::WrongReply;
}
// Remove header from output
memcpy(output.data(), response.command_data.data() + HeaderSize, packet_data.size);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconCommonProtocol::EnableMCU(bool enable) {
+Common::Input::DriverResult JoyconCommonProtocol::EnableMCU(bool enable) {
const std::array<u8, 1> mcu_state{static_cast<u8>(enable ? 1 : 0)};
const auto result = SendSubCommand(SubCommand::SET_MCU_STATE, mcu_state);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
LOG_ERROR(Input, "Failed with error {}", result);
}
return result;
}
-DriverResult JoyconCommonProtocol::ConfigureMCU(const MCUConfig& config) {
+Common::Input::DriverResult JoyconCommonProtocol::ConfigureMCU(const MCUConfig& config) {
LOG_DEBUG(Input, "ConfigureMCU");
std::array<u8, sizeof(MCUConfig)> config_buffer;
memcpy(config_buffer.data(), &config, sizeof(MCUConfig));
@@ -207,15 +211,15 @@ DriverResult JoyconCommonProtocol::ConfigureMCU(const MCUConfig& config) {
const auto result = SendSubCommand(SubCommand::SET_MCU_CONFIG, config_buffer);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
LOG_ERROR(Input, "Failed with error {}", result);
}
return result;
}
-DriverResult JoyconCommonProtocol::GetMCUDataResponse(ReportMode report_mode,
- MCUCommandResponse& output) {
+Common::Input::DriverResult JoyconCommonProtocol::GetMCUDataResponse(ReportMode report_mode,
+ MCUCommandResponse& output) {
constexpr int TimeoutMili = 200;
constexpr int MaxTries = 9;
int tries = 0;
@@ -228,17 +232,18 @@ DriverResult JoyconCommonProtocol::GetMCUDataResponse(ReportMode report_mode,
LOG_ERROR(Input, "No response from joycon attempt {}", tries);
}
if (tries++ > MaxTries) {
- return DriverResult::Timeout;
+ return Common::Input::DriverResult::Timeout;
}
} while (output.input_report.report_mode != report_mode ||
output.mcu_report == MCUReport::EmptyAwaitingCmd);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconCommonProtocol::SendMCUData(ReportMode report_mode, MCUSubCommand sc,
- std::span<const u8> buffer,
- MCUCommandResponse& output) {
+Common::Input::DriverResult JoyconCommonProtocol::SendMCUData(ReportMode report_mode,
+ MCUSubCommand sc,
+ std::span<const u8> buffer,
+ MCUCommandResponse& output) {
SubCommandPacket packet{
.output_report = OutputReport::MCU_DATA,
.packet_counter = GetCounter(),
@@ -247,23 +252,24 @@ DriverResult JoyconCommonProtocol::SendMCUData(ReportMode report_mode, MCUSubCom
};
if (buffer.size() > packet.command_data.size()) {
- return DriverResult::InvalidParameters;
+ return Common::Input::DriverResult::InvalidParameters;
}
memcpy(packet.command_data.data(), buffer.data(), buffer.size());
auto result = SendData(packet);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
result = GetMCUDataResponse(report_mode, output);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult JoyconCommonProtocol::WaitSetMCUMode(ReportMode report_mode, MCUMode mode) {
+Common::Input::DriverResult JoyconCommonProtocol::WaitSetMCUMode(ReportMode report_mode,
+ MCUMode mode) {
MCUCommandResponse output{};
constexpr std::size_t MaxTries{16};
std::size_t tries{};
@@ -271,17 +277,17 @@ DriverResult JoyconCommonProtocol::WaitSetMCUMode(ReportMode report_mode, MCUMod
do {
const auto result = SendMCUData(report_mode, MCUSubCommand::SetDeviceMode, {}, output);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ > MaxTries) {
- return DriverResult::WrongReply;
+ return Common::Input::DriverResult::WrongReply;
}
} while (output.mcu_report != MCUReport::StateReport ||
output.mcu_data[6] != static_cast<u8>(mode));
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
// crc-8-ccitt / polynomial 0x07 look up table
diff --git a/src/input_common/helpers/joycon_protocol/common_protocol.h b/src/input_common/helpers/joycon_protocol/common_protocol.h
index 411ec018a..dd667ca2b 100644
--- a/src/input_common/helpers/joycon_protocol/common_protocol.h
+++ b/src/input_common/helpers/joycon_protocol/common_protocol.h
@@ -38,30 +38,30 @@ public:
* Sends a request to obtain the joycon type from device
* @returns controller type of the joycon
*/
- DriverResult GetDeviceType(ControllerType& controller_type);
+ Common::Input::DriverResult GetDeviceType(ControllerType& controller_type);
/**
* Verifies and sets the joycon_handle if device is valid
* @param device info from the driver
* @returns success if the device is valid
*/
- DriverResult CheckDeviceAccess(SDL_hid_device_info* device);
+ Common::Input::DriverResult CheckDeviceAccess(SDL_hid_device_info* device);
/**
* Sends a request to set the polling mode of the joycon
* @param report_mode polling mode to be set
*/
- DriverResult SetReportMode(Joycon::ReportMode report_mode);
+ Common::Input::DriverResult SetReportMode(Joycon::ReportMode report_mode);
/**
* Sends data to the joycon device
* @param buffer data to be send
*/
- DriverResult SendRawData(std::span<const u8> buffer);
+ Common::Input::DriverResult SendRawData(std::span<const u8> buffer);
template <typename Output>
requires std::is_trivially_copyable_v<Output>
- DriverResult SendData(const Output& output) {
+ Common::Input::DriverResult SendData(const Output& output) {
std::array<u8, sizeof(Output)> buffer;
std::memcpy(buffer.data(), &output, sizeof(Output));
return SendRawData(buffer);
@@ -72,7 +72,8 @@ public:
* @param sub_command type of data to be returned
* @returns a buffer containing the response
*/
- DriverResult GetSubCommandResponse(SubCommand sub_command, SubCommandResponse& output);
+ Common::Input::DriverResult GetSubCommandResponse(SubCommand sub_command,
+ SubCommandResponse& output);
/**
* Sends a sub command to the device and waits for it's reply
@@ -80,35 +81,35 @@ public:
* @param buffer data to be send
* @returns output buffer containing the response
*/
- DriverResult SendSubCommand(SubCommand sc, std::span<const u8> buffer,
- SubCommandResponse& output);
+ Common::Input::DriverResult SendSubCommand(SubCommand sc, std::span<const u8> buffer,
+ SubCommandResponse& output);
/**
* Sends a sub command to the device and waits for it's reply and ignores the output
* @param sc sub command to be send
* @param buffer data to be send
*/
- DriverResult SendSubCommand(SubCommand sc, std::span<const u8> buffer);
+ Common::Input::DriverResult SendSubCommand(SubCommand sc, std::span<const u8> buffer);
/**
* Sends a mcu command to the device
* @param sc sub command to be send
* @param buffer data to be send
*/
- DriverResult SendMCUCommand(SubCommand sc, std::span<const u8> buffer);
+ Common::Input::DriverResult SendMCUCommand(SubCommand sc, std::span<const u8> buffer);
/**
* Sends vibration data to the joycon
* @param buffer data to be send
*/
- DriverResult SendVibrationReport(std::span<const u8> buffer);
+ Common::Input::DriverResult SendVibrationReport(std::span<const u8> buffer);
/**
* Reads the SPI memory stored on the joycon
* @param Initial address location
* @returns output buffer containing the response
*/
- DriverResult ReadRawSPI(SpiAddress addr, std::span<u8> output);
+ Common::Input::DriverResult ReadRawSPI(SpiAddress addr, std::span<u8> output);
/**
* Reads the SPI memory stored on the joycon
@@ -117,37 +118,38 @@ public:
*/
template <typename Output>
requires std::is_trivially_copyable_v<Output>
- DriverResult ReadSPI(SpiAddress addr, Output& output) {
+ Common::Input::DriverResult ReadSPI(SpiAddress addr, Output& output) {
std::array<u8, sizeof(Output)> buffer;
output = {};
const auto result = ReadRawSPI(addr, buffer);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
std::memcpy(&output, buffer.data(), sizeof(Output));
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
/**
* Enables MCU chip on the joycon
* @param enable if true the chip will be enabled
*/
- DriverResult EnableMCU(bool enable);
+ Common::Input::DriverResult EnableMCU(bool enable);
/**
* Configures the MCU to the corresponding mode
* @param MCUConfig configuration
*/
- DriverResult ConfigureMCU(const MCUConfig& config);
+ Common::Input::DriverResult ConfigureMCU(const MCUConfig& config);
/**
* Waits until there's MCU data available. On timeout returns error
* @param report mode of the expected reply
* @returns a buffer containing the response
*/
- DriverResult GetMCUDataResponse(ReportMode report_mode_, MCUCommandResponse& output);
+ Common::Input::DriverResult GetMCUDataResponse(ReportMode report_mode_,
+ MCUCommandResponse& output);
/**
* Sends data to the MCU chip and waits for it's reply
@@ -156,15 +158,15 @@ public:
* @param buffer data to be send
* @returns output buffer containing the response
*/
- DriverResult SendMCUData(ReportMode report_mode, MCUSubCommand sc, std::span<const u8> buffer,
- MCUCommandResponse& output);
+ Common::Input::DriverResult SendMCUData(ReportMode report_mode, MCUSubCommand sc,
+ std::span<const u8> buffer, MCUCommandResponse& output);
/**
* Wait's until the MCU chip is on the specified mode
* @param report mode of the expected reply
* @param MCUMode configuration
*/
- DriverResult WaitSetMCUMode(ReportMode report_mode, MCUMode mode);
+ Common::Input::DriverResult WaitSetMCUMode(ReportMode report_mode, MCUMode mode);
/**
* Calculates the checksum from the MCU data
diff --git a/src/input_common/helpers/joycon_protocol/generic_functions.cpp b/src/input_common/helpers/joycon_protocol/generic_functions.cpp
index 548a4b9e3..e9a056448 100644
--- a/src/input_common/helpers/joycon_protocol/generic_functions.cpp
+++ b/src/input_common/helpers/joycon_protocol/generic_functions.cpp
@@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "common/input.h"
#include "common/logging/log.h"
#include "input_common/helpers/joycon_protocol/generic_functions.h"
@@ -9,73 +10,74 @@ namespace InputCommon::Joycon {
GenericProtocol::GenericProtocol(std::shared_ptr<JoyconHandle> handle)
: JoyconCommonProtocol(std::move(handle)) {}
-DriverResult GenericProtocol::EnablePassiveMode() {
+Common::Input::DriverResult GenericProtocol::EnablePassiveMode() {
ScopedSetBlocking sb(this);
return SetReportMode(ReportMode::SIMPLE_HID_MODE);
}
-DriverResult GenericProtocol::EnableActiveMode() {
+Common::Input::DriverResult GenericProtocol::EnableActiveMode() {
ScopedSetBlocking sb(this);
return SetReportMode(ReportMode::STANDARD_FULL_60HZ);
}
-DriverResult GenericProtocol::SetLowPowerMode(bool enable) {
+Common::Input::DriverResult GenericProtocol::SetLowPowerMode(bool enable) {
ScopedSetBlocking sb(this);
const std::array<u8, 1> buffer{static_cast<u8>(enable ? 1 : 0)};
return SendSubCommand(SubCommand::LOW_POWER_MODE, buffer);
}
-DriverResult GenericProtocol::TriggersElapsed() {
+Common::Input::DriverResult GenericProtocol::TriggersElapsed() {
ScopedSetBlocking sb(this);
return SendSubCommand(SubCommand::TRIGGERS_ELAPSED, {});
}
-DriverResult GenericProtocol::GetDeviceInfo(DeviceInfo& device_info) {
+Common::Input::DriverResult GenericProtocol::GetDeviceInfo(DeviceInfo& device_info) {
ScopedSetBlocking sb(this);
SubCommandResponse output{};
const auto result = SendSubCommand(SubCommand::REQ_DEV_INFO, {}, output);
device_info = {};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
device_info = output.device_info;
}
return result;
}
-DriverResult GenericProtocol::GetControllerType(ControllerType& controller_type) {
+Common::Input::DriverResult GenericProtocol::GetControllerType(ControllerType& controller_type) {
return GetDeviceType(controller_type);
}
-DriverResult GenericProtocol::EnableImu(bool enable) {
+Common::Input::DriverResult GenericProtocol::EnableImu(bool enable) {
ScopedSetBlocking sb(this);
const std::array<u8, 1> buffer{static_cast<u8>(enable ? 1 : 0)};
return SendSubCommand(SubCommand::ENABLE_IMU, buffer);
}
-DriverResult GenericProtocol::SetImuConfig(GyroSensitivity gsen, GyroPerformance gfrec,
- AccelerometerSensitivity asen,
- AccelerometerPerformance afrec) {
+Common::Input::DriverResult GenericProtocol::SetImuConfig(GyroSensitivity gsen,
+ GyroPerformance gfrec,
+ AccelerometerSensitivity asen,
+ AccelerometerPerformance afrec) {
ScopedSetBlocking sb(this);
const std::array<u8, 4> buffer{static_cast<u8>(gsen), static_cast<u8>(asen),
static_cast<u8>(gfrec), static_cast<u8>(afrec)};
return SendSubCommand(SubCommand::SET_IMU_SENSITIVITY, buffer);
}
-DriverResult GenericProtocol::GetBattery(u32& battery_level) {
+Common::Input::DriverResult GenericProtocol::GetBattery(u32& battery_level) {
// This function is meant to request the high resolution battery status
battery_level = 0;
- return DriverResult::NotSupported;
+ return Common::Input::DriverResult::NotSupported;
}
-DriverResult GenericProtocol::GetColor(Color& color) {
+Common::Input::DriverResult GenericProtocol::GetColor(Color& color) {
ScopedSetBlocking sb(this);
std::array<u8, 12> buffer{};
const auto result = ReadRawSPI(SpiAddress::COLOR_DATA, buffer);
color = {};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
color.body = static_cast<u32>((buffer[0] << 16) | (buffer[1] << 8) | buffer[2]);
color.buttons = static_cast<u32>((buffer[3] << 16) | (buffer[4] << 8) | buffer[5]);
color.left_grip = static_cast<u32>((buffer[6] << 16) | (buffer[7] << 8) | buffer[8]);
@@ -85,26 +87,26 @@ DriverResult GenericProtocol::GetColor(Color& color) {
return result;
}
-DriverResult GenericProtocol::GetSerialNumber(SerialNumber& serial_number) {
+Common::Input::DriverResult GenericProtocol::GetSerialNumber(SerialNumber& serial_number) {
ScopedSetBlocking sb(this);
std::array<u8, 16> buffer{};
const auto result = ReadRawSPI(SpiAddress::SERIAL_NUMBER, buffer);
serial_number = {};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
memcpy(serial_number.data(), buffer.data() + 1, sizeof(SerialNumber));
}
return result;
}
-DriverResult GenericProtocol::GetTemperature(u32& temperature) {
+Common::Input::DriverResult GenericProtocol::GetTemperature(u32& temperature) {
// Not all devices have temperature sensor
temperature = 25;
- return DriverResult::NotSupported;
+ return Common::Input::DriverResult::NotSupported;
}
-DriverResult GenericProtocol::GetVersionNumber(FirmwareVersion& version) {
+Common::Input::DriverResult GenericProtocol::GetVersionNumber(FirmwareVersion& version) {
DeviceInfo device_info{};
const auto result = GetDeviceInfo(device_info);
@@ -113,23 +115,23 @@ DriverResult GenericProtocol::GetVersionNumber(FirmwareVersion& version) {
return result;
}
-DriverResult GenericProtocol::SetHomeLight() {
+Common::Input::DriverResult GenericProtocol::SetHomeLight() {
ScopedSetBlocking sb(this);
static constexpr std::array<u8, 3> buffer{0x0f, 0xf0, 0x00};
return SendSubCommand(SubCommand::SET_HOME_LIGHT, buffer);
}
-DriverResult GenericProtocol::SetLedBusy() {
- return DriverResult::NotSupported;
+Common::Input::DriverResult GenericProtocol::SetLedBusy() {
+ return Common::Input::DriverResult::NotSupported;
}
-DriverResult GenericProtocol::SetLedPattern(u8 leds) {
+Common::Input::DriverResult GenericProtocol::SetLedPattern(u8 leds) {
ScopedSetBlocking sb(this);
const std::array<u8, 1> buffer{leds};
return SendSubCommand(SubCommand::SET_PLAYER_LIGHTS, buffer);
}
-DriverResult GenericProtocol::SetLedBlinkPattern(u8 leds) {
+Common::Input::DriverResult GenericProtocol::SetLedBlinkPattern(u8 leds) {
return SetLedPattern(static_cast<u8>(leds << 4));
}
diff --git a/src/input_common/helpers/joycon_protocol/generic_functions.h b/src/input_common/helpers/joycon_protocol/generic_functions.h
index 424831e81..90fcd17f6 100644
--- a/src/input_common/helpers/joycon_protocol/generic_functions.h
+++ b/src/input_common/helpers/joycon_protocol/generic_functions.h
@@ -11,6 +11,10 @@
#include "input_common/helpers/joycon_protocol/common_protocol.h"
#include "input_common/helpers/joycon_protocol/joycon_types.h"
+namespace Common::Input {
+enum class DriverResult;
+}
+
namespace InputCommon::Joycon {
/// Joycon driver functions that easily implemented
@@ -20,34 +24,34 @@ public:
/// Enables passive mode. This mode only sends button data on change. Sticks will return digital
/// data instead of analog. Motion will be disabled
- DriverResult EnablePassiveMode();
+ Common::Input::DriverResult EnablePassiveMode();
/// Enables active mode. This mode will return the current status every 5-15ms
- DriverResult EnableActiveMode();
+ Common::Input::DriverResult EnableActiveMode();
/// Enables or disables the low power mode
- DriverResult SetLowPowerMode(bool enable);
+ Common::Input::DriverResult SetLowPowerMode(bool enable);
/// Unknown function used by the switch
- DriverResult TriggersElapsed();
+ Common::Input::DriverResult TriggersElapsed();
/**
* Sends a request to obtain the joycon firmware and mac from handle
* @returns controller device info
*/
- DriverResult GetDeviceInfo(DeviceInfo& controller_type);
+ Common::Input::DriverResult GetDeviceInfo(DeviceInfo& controller_type);
/**
* Sends a request to obtain the joycon type from handle
* @returns controller type of the joycon
*/
- DriverResult GetControllerType(ControllerType& controller_type);
+ Common::Input::DriverResult GetControllerType(ControllerType& controller_type);
/**
* Enables motion input
* @param enable if true motion data will be enabled
*/
- DriverResult EnableImu(bool enable);
+ Common::Input::DriverResult EnableImu(bool enable);
/**
* Configures the motion sensor with the specified parameters
@@ -56,59 +60,60 @@ public:
* @param asen accelerometer sensitivity in G force
* @param afrec accelerometer frequency in hertz
*/
- DriverResult SetImuConfig(GyroSensitivity gsen, GyroPerformance gfrec,
- AccelerometerSensitivity asen, AccelerometerPerformance afrec);
+ Common::Input::DriverResult SetImuConfig(GyroSensitivity gsen, GyroPerformance gfrec,
+ AccelerometerSensitivity asen,
+ AccelerometerPerformance afrec);
/**
* Request battery level from the device
* @returns battery level
*/
- DriverResult GetBattery(u32& battery_level);
+ Common::Input::DriverResult GetBattery(u32& battery_level);
/**
* Request joycon colors from the device
* @returns colors of the body and buttons
*/
- DriverResult GetColor(Color& color);
+ Common::Input::DriverResult GetColor(Color& color);
/**
* Request joycon serial number from the device
* @returns 16 byte serial number
*/
- DriverResult GetSerialNumber(SerialNumber& serial_number);
+ Common::Input::DriverResult GetSerialNumber(SerialNumber& serial_number);
/**
* Request joycon serial number from the device
* @returns 16 byte serial number
*/
- DriverResult GetTemperature(u32& temperature);
+ Common::Input::DriverResult GetTemperature(u32& temperature);
/**
* Request joycon serial number from the device
* @returns 16 byte serial number
*/
- DriverResult GetVersionNumber(FirmwareVersion& version);
+ Common::Input::DriverResult GetVersionNumber(FirmwareVersion& version);
/**
* Sets home led behaviour
*/
- DriverResult SetHomeLight();
+ Common::Input::DriverResult SetHomeLight();
/**
* Sets home led into a slow breathing state
*/
- DriverResult SetLedBusy();
+ Common::Input::DriverResult SetLedBusy();
/**
* Sets the 4 player leds on the joycon on a solid state
* @params bit flag containing the led state
*/
- DriverResult SetLedPattern(u8 leds);
+ Common::Input::DriverResult SetLedPattern(u8 leds);
/**
* Sets the 4 player leds on the joycon on a blinking state
* @returns bit flag containing the led state
*/
- DriverResult SetLedBlinkPattern(u8 leds);
+ Common::Input::DriverResult SetLedBlinkPattern(u8 leds);
};
} // namespace InputCommon::Joycon
diff --git a/src/input_common/helpers/joycon_protocol/irs.cpp b/src/input_common/helpers/joycon_protocol/irs.cpp
index 731fd5981..68b0589e3 100644
--- a/src/input_common/helpers/joycon_protocol/irs.cpp
+++ b/src/input_common/helpers/joycon_protocol/irs.cpp
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include <thread>
+#include "common/input.h"
#include "common/logging/log.h"
#include "input_common/helpers/joycon_protocol/irs.h"
@@ -10,21 +10,21 @@ namespace InputCommon::Joycon {
IrsProtocol::IrsProtocol(std::shared_ptr<JoyconHandle> handle)
: JoyconCommonProtocol(std::move(handle)) {}
-DriverResult IrsProtocol::EnableIrs() {
+Common::Input::DriverResult IrsProtocol::EnableIrs() {
LOG_INFO(Input, "Enable IRS");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = SetReportMode(ReportMode::NFC_IR_MODE_60HZ);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = EnableMCU(true);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitSetMCUMode(ReportMode::NFC_IR_MODE_60HZ, MCUMode::Standby);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
const MCUConfig config{
.command = MCUCommand::ConfigureMCU,
.sub_command = MCUSubCommand::SetMCUMode,
@@ -34,16 +34,16 @@ DriverResult IrsProtocol::EnableIrs() {
result = ConfigureMCU(config);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitSetMCUMode(ReportMode::NFC_IR_MODE_60HZ, MCUMode::IR);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = ConfigureIrs();
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WriteRegistersStep1();
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WriteRegistersStep2();
}
@@ -52,12 +52,12 @@ DriverResult IrsProtocol::EnableIrs() {
return result;
}
-DriverResult IrsProtocol::DisableIrs() {
+Common::Input::DriverResult IrsProtocol::DisableIrs() {
LOG_DEBUG(Input, "Disable IRS");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = EnableMCU(false);
}
@@ -66,7 +66,7 @@ DriverResult IrsProtocol::DisableIrs() {
return result;
}
-DriverResult IrsProtocol::SetIrsConfig(IrsMode mode, IrsResolution format) {
+Common::Input::DriverResult IrsProtocol::SetIrsConfig(IrsMode mode, IrsResolution format) {
irs_mode = mode;
switch (format) {
case IrsResolution::Size320x240:
@@ -103,10 +103,10 @@ DriverResult IrsProtocol::SetIrsConfig(IrsMode mode, IrsResolution format) {
return EnableIrs();
}
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult IrsProtocol::RequestImage(std::span<u8> buffer) {
+Common::Input::DriverResult IrsProtocol::RequestImage(std::span<u8> buffer) {
const u8 next_packet_fragment =
static_cast<u8>((packet_fragment + 1) % (static_cast<u8>(fragments) + 1));
@@ -129,7 +129,7 @@ DriverResult IrsProtocol::RequestImage(std::span<u8> buffer) {
return RequestFrame(packet_fragment);
}
-DriverResult IrsProtocol::ConfigureIrs() {
+Common::Input::DriverResult IrsProtocol::ConfigureIrs() {
LOG_DEBUG(Input, "Configure IRS");
constexpr std::size_t max_tries = 28;
SubCommandResponse output{};
@@ -152,20 +152,20 @@ DriverResult IrsProtocol::ConfigureIrs() {
do {
const auto result = SendSubCommand(SubCommand::SET_MCU_CONFIG, request_data, output);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ >= max_tries) {
- return DriverResult::WrongReply;
+ return Common::Input::DriverResult::WrongReply;
}
} while (output.command_data[0] != 0x0b);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult IrsProtocol::WriteRegistersStep1() {
+Common::Input::DriverResult IrsProtocol::WriteRegistersStep1() {
LOG_DEBUG(Input, "WriteRegistersStep1");
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
constexpr std::size_t max_tries = 28;
SubCommandResponse output{};
std::size_t tries = 0;
@@ -197,7 +197,7 @@ DriverResult IrsProtocol::WriteRegistersStep1() {
mcu_request[36] = CalculateMCU_CRC8(mcu_request.data(), 36);
mcu_request[37] = 0xFF;
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
@@ -205,26 +205,26 @@ DriverResult IrsProtocol::WriteRegistersStep1() {
result = SendSubCommand(SubCommand::SET_MCU_CONFIG, request_data, output);
// First time we need to set the report mode
- if (result == DriverResult::Success && tries == 0) {
+ if (result == Common::Input::DriverResult::Success && tries == 0) {
result = SendMCUCommand(SubCommand::SET_REPORT_MODE, mcu_request);
}
- if (result == DriverResult::Success && tries == 0) {
+ if (result == Common::Input::DriverResult::Success && tries == 0) {
GetSubCommandResponse(SubCommand::SET_MCU_CONFIG, output);
}
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ >= max_tries) {
- return DriverResult::WrongReply;
+ return Common::Input::DriverResult::WrongReply;
}
} while (!(output.command_data[0] == 0x13 && output.command_data[2] == 0x07) &&
output.command_data[0] != 0x23);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult IrsProtocol::WriteRegistersStep2() {
+Common::Input::DriverResult IrsProtocol::WriteRegistersStep2() {
LOG_DEBUG(Input, "WriteRegistersStep2");
constexpr std::size_t max_tries = 28;
SubCommandResponse output{};
@@ -255,18 +255,18 @@ DriverResult IrsProtocol::WriteRegistersStep2() {
do {
const auto result = SendSubCommand(SubCommand::SET_MCU_CONFIG, request_data, output);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ >= max_tries) {
- return DriverResult::WrongReply;
+ return Common::Input::DriverResult::WrongReply;
}
} while (output.command_data[0] != 0x13 && output.command_data[0] != 0x23);
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult IrsProtocol::RequestFrame(u8 frame) {
+Common::Input::DriverResult IrsProtocol::RequestFrame(u8 frame) {
std::array<u8, 38> mcu_request{};
mcu_request[3] = frame;
mcu_request[36] = CalculateMCU_CRC8(mcu_request.data(), 36);
@@ -274,7 +274,7 @@ DriverResult IrsProtocol::RequestFrame(u8 frame) {
return SendMCUCommand(SubCommand::SET_REPORT_MODE, mcu_request);
}
-DriverResult IrsProtocol::ResendFrame(u8 frame) {
+Common::Input::DriverResult IrsProtocol::ResendFrame(u8 frame) {
std::array<u8, 38> mcu_request{};
mcu_request[1] = 0x1;
mcu_request[2] = frame;
diff --git a/src/input_common/helpers/joycon_protocol/irs.h b/src/input_common/helpers/joycon_protocol/irs.h
index 76dfa02ea..714cbb6b2 100644
--- a/src/input_common/helpers/joycon_protocol/irs.h
+++ b/src/input_common/helpers/joycon_protocol/irs.h
@@ -13,19 +13,23 @@
#include "input_common/helpers/joycon_protocol/common_protocol.h"
#include "input_common/helpers/joycon_protocol/joycon_types.h"
+namespace Common::Input {
+enum class DriverResult;
+}
+
namespace InputCommon::Joycon {
class IrsProtocol final : private JoyconCommonProtocol {
public:
explicit IrsProtocol(std::shared_ptr<JoyconHandle> handle);
- DriverResult EnableIrs();
+ Common::Input::DriverResult EnableIrs();
- DriverResult DisableIrs();
+ Common::Input::DriverResult DisableIrs();
- DriverResult SetIrsConfig(IrsMode mode, IrsResolution format);
+ Common::Input::DriverResult SetIrsConfig(IrsMode mode, IrsResolution format);
- DriverResult RequestImage(std::span<u8> buffer);
+ Common::Input::DriverResult RequestImage(std::span<u8> buffer);
std::vector<u8> GetImage() const;
@@ -34,13 +38,13 @@ public:
bool IsEnabled() const;
private:
- DriverResult ConfigureIrs();
+ Common::Input::DriverResult ConfigureIrs();
- DriverResult WriteRegistersStep1();
- DriverResult WriteRegistersStep2();
+ Common::Input::DriverResult WriteRegistersStep1();
+ Common::Input::DriverResult WriteRegistersStep2();
- DriverResult RequestFrame(u8 frame);
- DriverResult ResendFrame(u8 frame);
+ Common::Input::DriverResult RequestFrame(u8 frame);
+ Common::Input::DriverResult ResendFrame(u8 frame);
IrsMode irs_mode{IrsMode::ImageTransfer};
IrsResolution resolution{IrsResolution::Size40x30};
diff --git a/src/input_common/helpers/joycon_protocol/joycon_types.h b/src/input_common/helpers/joycon_protocol/joycon_types.h
index 5007b0e18..77a43c67a 100644
--- a/src/input_common/helpers/joycon_protocol/joycon_types.h
+++ b/src/input_common/helpers/joycon_protocol/joycon_types.h
@@ -24,6 +24,7 @@ constexpr std::array<u8, 8> DefaultVibrationBuffer{0x0, 0x1, 0x40, 0x40, 0x0, 0x
using MacAddress = std::array<u8, 6>;
using SerialNumber = std::array<u8, 15>;
using TagUUID = std::array<u8, 7>;
+using MifareUUID = std::array<u8, 4>;
enum class ControllerType : u8 {
None = 0x00,
@@ -307,6 +308,19 @@ enum class NFCStatus : u8 {
WriteDone = 0x05,
TagLost = 0x07,
WriteReady = 0x09,
+ MifareDone = 0x10,
+};
+
+enum class MifareCmd : u8 {
+ None = 0x00,
+ Read = 0x30,
+ AuthA = 0x60,
+ AuthB = 0x61,
+ Write = 0xA0,
+ Transfer = 0xB0,
+ Decrement = 0xC0,
+ Increment = 0xC1,
+ Store = 0xC2
};
enum class IrsMode : u8 {
@@ -388,23 +402,6 @@ enum class ExternalDeviceId : u16 {
Starlink = 0x2800,
};
-enum class DriverResult {
- Success,
- WrongReply,
- Timeout,
- InvalidParameters,
- UnsupportedControllerType,
- HandleInUse,
- ErrorReadingData,
- ErrorWritingData,
- NoDeviceDetected,
- InvalidHandle,
- NotSupported,
- Disabled,
- Delayed,
- Unknown,
-};
-
struct MotionSensorCalibration {
s16 offset;
s16 scale;
@@ -592,6 +589,14 @@ struct NFCWriteCommandData {
static_assert(sizeof(NFCWriteCommandData) == 0x15, "NFCWriteCommandData is an invalid size");
#pragma pack(pop)
+struct MifareCommandData {
+ u8 unknown1;
+ u8 unknown2;
+ u8 number_of_short_bytes;
+ MifareUUID uid;
+};
+static_assert(sizeof(MifareCommandData) == 0x7, "MifareCommandData is an invalid size");
+
struct NFCPollingCommandData {
u8 enable_mifare;
u8 unknown_1;
@@ -629,6 +634,41 @@ struct NFCWritePackage {
std::array<NFCDataChunk, 4> data_chunks;
};
+struct MifareReadChunk {
+ MifareCmd command;
+ std::array<u8, 0x6> sector_key;
+ u8 sector;
+};
+
+struct MifareWriteChunk {
+ MifareCmd command;
+ std::array<u8, 0x6> sector_key;
+ u8 sector;
+ std::array<u8, 0x10> data;
+};
+
+struct MifareReadData {
+ u8 sector;
+ std::array<u8, 0x10> data;
+};
+
+struct MifareReadPackage {
+ MifareCommandData command_data;
+ std::array<MifareReadChunk, 0x10> data_chunks;
+};
+
+struct MifareWritePackage {
+ MifareCommandData command_data;
+ std::array<MifareWriteChunk, 0x10> data_chunks;
+};
+
+struct TagInfo {
+ u8 uuid_length;
+ u8 protocol;
+ u8 tag_type;
+ std::array<u8, 10> uuid;
+};
+
struct IrsConfigure {
MCUCommand command;
MCUSubCommand sub_command;
@@ -744,7 +784,7 @@ struct JoyconCallbacks {
std::function<void(int, f32)> on_stick_data;
std::function<void(int, const MotionData&)> on_motion_data;
std::function<void(f32)> on_ring_data;
- std::function<void(const std::vector<u8>&)> on_amiibo_data;
+ std::function<void(const Joycon::TagInfo&)> on_amiibo_data;
std::function<void(const std::vector<u8>&, IrsResolution)> on_camera_data;
};
diff --git a/src/input_common/helpers/joycon_protocol/nfc.cpp b/src/input_common/helpers/joycon_protocol/nfc.cpp
index f7058c4a7..09953394b 100644
--- a/src/input_common/helpers/joycon_protocol/nfc.cpp
+++ b/src/input_common/helpers/joycon_protocol/nfc.cpp
@@ -1,7 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
-#include <thread>
+#include "common/input.h"
#include "common/logging/log.h"
#include "input_common/helpers/joycon_protocol/nfc.h"
@@ -10,21 +10,21 @@ namespace InputCommon::Joycon {
NfcProtocol::NfcProtocol(std::shared_ptr<JoyconHandle> handle)
: JoyconCommonProtocol(std::move(handle)) {}
-DriverResult NfcProtocol::EnableNfc() {
+Common::Input::DriverResult NfcProtocol::EnableNfc() {
LOG_INFO(Input, "Enable NFC");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = SetReportMode(ReportMode::NFC_IR_MODE_60HZ);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = EnableMCU(true);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitSetMCUMode(ReportMode::NFC_IR_MODE_60HZ, MCUMode::Standby);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
const MCUConfig config{
.command = MCUCommand::ConfigureMCU,
.sub_command = MCUSubCommand::SetMCUMode,
@@ -34,123 +34,240 @@ DriverResult NfcProtocol::EnableNfc() {
result = ConfigureMCU(config);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitSetMCUMode(ReportMode::NFC_IR_MODE_60HZ, MCUMode::NFC);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitUntilNfcIs(NFCStatus::Ready);
}
+ if (result == Common::Input::DriverResult::Success) {
+ MCUCommandResponse output{};
+ result = SendStopPollingRequest(output);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::Ready);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ is_enabled = true;
+ }
return result;
}
-DriverResult NfcProtocol::DisableNfc() {
+Common::Input::DriverResult NfcProtocol::DisableNfc() {
LOG_DEBUG(Input, "Disable NFC");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = EnableMCU(false);
}
is_enabled = false;
+ is_polling = false;
return result;
}
-DriverResult NfcProtocol::StartNFCPollingMode() {
- LOG_DEBUG(Input, "Start NFC pooling Mode");
+Common::Input::DriverResult NfcProtocol::StartNFCPollingMode() {
+ LOG_DEBUG(Input, "Start NFC polling Mode");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
MCUCommandResponse output{};
- result = SendStopPollingRequest(output);
+ result = SendStartPollingRequest(output);
}
- if (result == DriverResult::Success) {
- result = WaitUntilNfcIs(NFCStatus::Ready);
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::Polling);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ is_polling = true;
}
- if (result == DriverResult::Success) {
+
+ return result;
+}
+
+Common::Input::DriverResult NfcProtocol::StopNFCPollingMode() {
+ LOG_DEBUG(Input, "Stop NFC polling Mode");
+ ScopedSetBlocking sb(this);
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
+
+ if (result == Common::Input::DriverResult::Success) {
MCUCommandResponse output{};
- result = SendStartPollingRequest(output);
+ result = SendStopPollingRequest(output);
}
- if (result == DriverResult::Success) {
- result = WaitUntilNfcIs(NFCStatus::Polling);
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::WriteReady);
}
- if (result == DriverResult::Success) {
- is_enabled = true;
+ if (result == Common::Input::DriverResult::Success) {
+ is_polling = false;
}
return result;
}
-DriverResult NfcProtocol::ScanAmiibo(std::vector<u8>& data) {
+Common::Input::DriverResult NfcProtocol::GetTagInfo(Joycon::TagInfo& tag_info) {
if (update_counter++ < AMIIBO_UPDATE_DELAY) {
- return DriverResult::Delayed;
+ return Common::Input::DriverResult::Delayed;
}
update_counter = 0;
LOG_DEBUG(Input, "Scan for amiibos");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
TagFoundData tag_data{};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = IsTagInRange(tag_data);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
+ tag_info = {
+ .uuid_length = tag_data.uuid_size,
+ .protocol = 1,
+ .tag_type = tag_data.type,
+ .uuid = {},
+ };
+
+ memcpy(tag_info.uuid.data(), tag_data.uuid.data(), tag_data.uuid_size);
+
+ // Investigate why mifare type is not correct
+ if (tag_info.tag_type == 144) {
+ tag_info.tag_type = 1U << 6;
+ }
+
std::string uuid_string;
for (auto& content : tag_data.uuid) {
uuid_string += fmt::format(" {:02x}", content);
}
LOG_INFO(Input, "Tag detected, type={}, uuid={}", tag_data.type, uuid_string);
+ }
+
+ return result;
+}
+
+Common::Input::DriverResult NfcProtocol::ReadAmiibo(std::vector<u8>& data) {
+ LOG_DEBUG(Input, "Scan for amiibos");
+ ScopedSetBlocking sb(this);
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
+ TagFoundData tag_data{};
+
+ if (result == Common::Input::DriverResult::Success) {
+ result = IsTagInRange(tag_data, 7);
+ }
+
+ if (result == Common::Input::DriverResult::Success) {
result = GetAmiiboData(data);
}
return result;
}
-DriverResult NfcProtocol::WriteAmiibo(std::span<const u8> data) {
+Common::Input::DriverResult NfcProtocol::WriteAmiibo(std::span<const u8> data) {
LOG_DEBUG(Input, "Write amiibo");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
TagUUID tag_uuid = GetTagUUID(data);
TagFoundData tag_data{};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = IsTagInRange(tag_data, 7);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
if (tag_data.uuid != tag_uuid) {
- result = DriverResult::InvalidParameters;
+ result = Common::Input::DriverResult::InvalidParameters;
}
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
MCUCommandResponse output{};
result = SendStopPollingRequest(output);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitUntilNfcIs(NFCStatus::Ready);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
MCUCommandResponse output{};
result = SendStartPollingRequest(output, true);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitUntilNfcIs(NFCStatus::WriteReady);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WriteAmiiboData(tag_uuid, data);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = WaitUntilNfcIs(NFCStatus::WriteDone);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
+ MCUCommandResponse output{};
+ result = SendStopPollingRequest(output);
+ }
+
+ return result;
+}
+
+Common::Input::DriverResult NfcProtocol::ReadMifare(std::span<const MifareReadChunk> read_request,
+ std::span<MifareReadData> out_data) {
+ LOG_DEBUG(Input, "Read mifare");
+ ScopedSetBlocking sb(this);
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
+ TagFoundData tag_data{};
+ MifareUUID tag_uuid{};
+
+ if (result == Common::Input::DriverResult::Success) {
+ result = IsTagInRange(tag_data, 7);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ memcpy(tag_uuid.data(), tag_data.uuid.data(), sizeof(MifareUUID));
+ result = GetMifareData(tag_uuid, read_request, out_data);
+ }
+ if (result == Common::Input::DriverResult::Success) {
MCUCommandResponse output{};
result = SendStopPollingRequest(output);
}
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::Ready);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ MCUCommandResponse output{};
+ result = SendStartPollingRequest(output, true);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::WriteReady);
+ }
+ return result;
+}
+
+Common::Input::DriverResult NfcProtocol::WriteMifare(
+ std::span<const MifareWriteChunk> write_request) {
+ LOG_DEBUG(Input, "Write mifare");
+ ScopedSetBlocking sb(this);
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
+ TagFoundData tag_data{};
+ MifareUUID tag_uuid{};
+ if (result == Common::Input::DriverResult::Success) {
+ result = IsTagInRange(tag_data, 7);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ memcpy(tag_uuid.data(), tag_data.uuid.data(), sizeof(MifareUUID));
+ result = WriteMifareData(tag_uuid, write_request);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ MCUCommandResponse output{};
+ result = SendStopPollingRequest(output);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::Ready);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ MCUCommandResponse output{};
+ result = SendStartPollingRequest(output, true);
+ }
+ if (result == Common::Input::DriverResult::Success) {
+ result = WaitUntilNfcIs(NFCStatus::WriteReady);
+ }
return result;
}
@@ -161,17 +278,17 @@ bool NfcProtocol::HasAmiibo() {
update_counter = 0;
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
TagFoundData tag_data{};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = IsTagInRange(tag_data, 7);
}
- return result == DriverResult::Success;
+ return result == Common::Input::DriverResult::Success;
}
-DriverResult NfcProtocol::WaitUntilNfcIs(NFCStatus status) {
+Common::Input::DriverResult NfcProtocol::WaitUntilNfcIs(NFCStatus status) {
constexpr std::size_t timeout_limit = 10;
MCUCommandResponse output{};
std::size_t tries = 0;
@@ -179,30 +296,31 @@ DriverResult NfcProtocol::WaitUntilNfcIs(NFCStatus status) {
do {
auto result = SendNextPackageRequest(output, {});
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ > timeout_limit) {
- return DriverResult::Timeout;
+ return Common::Input::DriverResult::Timeout;
}
} while (output.mcu_report != MCUReport::NFCState ||
(output.mcu_data[1] << 8) + output.mcu_data[0] != 0x0500 ||
output.mcu_data[5] != 0x31 || output.mcu_data[6] != static_cast<u8>(status));
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult NfcProtocol::IsTagInRange(TagFoundData& data, std::size_t timeout_limit) {
+Common::Input::DriverResult NfcProtocol::IsTagInRange(TagFoundData& data,
+ std::size_t timeout_limit) {
MCUCommandResponse output{};
std::size_t tries = 0;
do {
const auto result = SendNextPackageRequest(output, {});
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if (tries++ > timeout_limit) {
- return DriverResult::Timeout;
+ return Common::Input::DriverResult::Timeout;
}
} while (output.mcu_report != MCUReport::NFCState ||
(output.mcu_data[1] << 8) + output.mcu_data[0] != 0x0500 ||
@@ -212,10 +330,10 @@ DriverResult NfcProtocol::IsTagInRange(TagFoundData& data, std::size_t timeout_l
data.uuid_size = std::min(output.mcu_data[14], static_cast<u8>(sizeof(TagUUID)));
memcpy(data.uuid.data(), output.mcu_data.data() + 15, data.uuid.size());
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult NfcProtocol::GetAmiiboData(std::vector<u8>& ntag_data) {
+Common::Input::DriverResult NfcProtocol::GetAmiiboData(std::vector<u8>& ntag_data) {
constexpr std::size_t timeout_limit = 60;
MCUCommandResponse output{};
std::size_t tries = 0;
@@ -224,7 +342,7 @@ DriverResult NfcProtocol::GetAmiiboData(std::vector<u8>& ntag_data) {
std::size_t ntag_buffer_pos = 0;
auto result = SendReadAmiiboRequest(output, NFCPages::Block135);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
@@ -233,14 +351,14 @@ DriverResult NfcProtocol::GetAmiiboData(std::vector<u8>& ntag_data) {
result = SendNextPackageRequest(output, package_index);
const auto nfc_status = static_cast<NFCStatus>(output.mcu_data[6]);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if ((output.mcu_report == MCUReport::NFCReadData ||
output.mcu_report == MCUReport::NFCState) &&
nfc_status == NFCStatus::TagLost) {
- return DriverResult::ErrorReadingData;
+ return Common::Input::DriverResult::ErrorReadingData;
}
if (output.mcu_report == MCUReport::NFCReadData && output.mcu_data[1] == 0x07) {
@@ -259,14 +377,15 @@ DriverResult NfcProtocol::GetAmiiboData(std::vector<u8>& ntag_data) {
if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::LastPackage) {
LOG_INFO(Input, "Finished reading amiibo");
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
}
- return DriverResult::Timeout;
+ return Common::Input::DriverResult::Timeout;
}
-DriverResult NfcProtocol::WriteAmiiboData(const TagUUID& tag_uuid, std::span<const u8> data) {
+Common::Input::DriverResult NfcProtocol::WriteAmiiboData(const TagUUID& tag_uuid,
+ std::span<const u8> data) {
constexpr std::size_t timeout_limit = 60;
const auto nfc_data = MakeAmiiboWritePackage(tag_uuid, data);
const std::vector<u8> nfc_buffer_data = SerializeWritePackage(nfc_data);
@@ -281,7 +400,7 @@ DriverResult NfcProtocol::WriteAmiiboData(const TagUUID& tag_uuid, std::span<con
auto result = SendWriteAmiiboRequest(output, tag_uuid);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
@@ -290,14 +409,14 @@ DriverResult NfcProtocol::WriteAmiiboData(const TagUUID& tag_uuid, std::span<con
result = SendNextPackageRequest(output, package_index);
const auto nfc_status = static_cast<NFCStatus>(output.mcu_data[6]);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
if ((output.mcu_report == MCUReport::NFCReadData ||
output.mcu_report == MCUReport::NFCState) &&
nfc_status == NFCStatus::TagLost) {
- return DriverResult::ErrorReadingData;
+ return Common::Input::DriverResult::ErrorReadingData;
}
if (output.mcu_report == MCUReport::NFCReadData && output.mcu_data[1] == 0x07) {
@@ -326,7 +445,131 @@ DriverResult NfcProtocol::WriteAmiiboData(const TagUUID& tag_uuid, std::span<con
if ((output.mcu_report == MCUReport::NFCReadData ||
output.mcu_report == MCUReport::NFCState) &&
nfc_status == NFCStatus::TagLost) {
- return DriverResult::ErrorReadingData;
+ return Common::Input::DriverResult::ErrorReadingData;
+ }
+
+ // Increase position when data is confirmed by the joycon
+ if (output.mcu_report == MCUReport::NFCState &&
+ (output.mcu_data[1] << 8) + output.mcu_data[0] == 0x0500 &&
+ output.mcu_data[3] == block_id) {
+ block_id++;
+ current_position = next_position;
+ }
+ }
+
+ return result;
+}
+
+Common::Input::DriverResult NfcProtocol::GetMifareData(
+ const MifareUUID& tag_uuid, std::span<const MifareReadChunk> read_request,
+ std::span<MifareReadData> out_data) {
+ constexpr std::size_t timeout_limit = 60;
+ const auto nfc_data = MakeMifareReadPackage(tag_uuid, read_request);
+ const std::vector<u8> nfc_buffer_data = SerializeMifareReadPackage(nfc_data);
+ std::span<const u8> buffer(nfc_buffer_data);
+ Common::Input::DriverResult result = Common::Input::DriverResult::Success;
+ MCUCommandResponse output{};
+ u8 block_id = 1;
+ u8 package_index = 0;
+ std::size_t tries = 0;
+ std::size_t current_position = 0;
+
+ LOG_INFO(Input, "Reading Mifare data");
+
+ // Send data request. Nfc buffer size is 31, Send the data in smaller packages
+ while (current_position < buffer.size() && tries++ < timeout_limit) {
+ const std::size_t next_position =
+ std::min(current_position + sizeof(NFCRequestState::raw_data), buffer.size());
+ const std::size_t block_size = next_position - current_position;
+ const bool is_last_packet = block_size < sizeof(NFCRequestState::raw_data);
+
+ SendReadDataMifareRequest(output, block_id, is_last_packet,
+ buffer.subspan(current_position, block_size));
+
+ const auto nfc_status = static_cast<NFCStatus>(output.mcu_data[6]);
+
+ if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::TagLost) {
+ return Common::Input::DriverResult::ErrorReadingData;
+ }
+
+ // Increase position when data is confirmed by the joycon
+ if (output.mcu_report == MCUReport::NFCState &&
+ (output.mcu_data[1] << 8) + output.mcu_data[0] == 0x0500 &&
+ output.mcu_data[3] == block_id) {
+ block_id++;
+ current_position = next_position;
+ }
+ }
+
+ if (result != Common::Input::DriverResult::Success) {
+ return result;
+ }
+
+ // Wait for reply and save the output data
+ while (tries++ < timeout_limit) {
+ result = SendNextPackageRequest(output, package_index);
+ const auto nfc_status = static_cast<NFCStatus>(output.mcu_data[6]);
+
+ if (result != Common::Input::DriverResult::Success) {
+ return result;
+ }
+
+ if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::TagLost) {
+ return Common::Input::DriverResult::ErrorReadingData;
+ }
+
+ if (output.mcu_report == MCUReport::NFCState && output.mcu_data[1] == 0x10) {
+ constexpr std::size_t DATA_LENGHT = 0x10 + 1;
+ constexpr std::size_t DATA_START = 11;
+ const u8 number_of_elements = output.mcu_data[10];
+ for (std::size_t i = 0; i < number_of_elements; i++) {
+ out_data[i].sector = output.mcu_data[DATA_START + (i * DATA_LENGHT)];
+ memcpy(out_data[i].data.data(),
+ output.mcu_data.data() + DATA_START + 1 + (i * DATA_LENGHT),
+ sizeof(MifareReadData::data));
+ }
+ package_index++;
+ continue;
+ }
+
+ if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::MifareDone) {
+ LOG_INFO(Input, "Finished reading mifare");
+ break;
+ }
+ }
+
+ return result;
+}
+
+Common::Input::DriverResult NfcProtocol::WriteMifareData(
+ const MifareUUID& tag_uuid, std::span<const MifareWriteChunk> write_request) {
+ constexpr std::size_t timeout_limit = 60;
+ const auto nfc_data = MakeMifareWritePackage(tag_uuid, write_request);
+ const std::vector<u8> nfc_buffer_data = SerializeMifareWritePackage(nfc_data);
+ std::span<const u8> buffer(nfc_buffer_data);
+ Common::Input::DriverResult result = Common::Input::DriverResult::Success;
+ MCUCommandResponse output{};
+ u8 block_id = 1;
+ u8 package_index = 0;
+ std::size_t tries = 0;
+ std::size_t current_position = 0;
+
+ LOG_INFO(Input, "Writing Mifare data");
+
+ // Send data request. Nfc buffer size is 31, Send the data in smaller packages
+ while (current_position < buffer.size() && tries++ < timeout_limit) {
+ const std::size_t next_position =
+ std::min(current_position + sizeof(NFCRequestState::raw_data), buffer.size());
+ const std::size_t block_size = next_position - current_position;
+ const bool is_last_packet = block_size < sizeof(NFCRequestState::raw_data);
+
+ SendReadDataMifareRequest(output, block_id, is_last_packet,
+ buffer.subspan(current_position, block_size));
+
+ const auto nfc_status = static_cast<NFCStatus>(output.mcu_data[6]);
+
+ if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::TagLost) {
+ return Common::Input::DriverResult::ErrorReadingData;
}
// Increase position when data is confirmed by the joycon
@@ -338,11 +581,39 @@ DriverResult NfcProtocol::WriteAmiiboData(const TagUUID& tag_uuid, std::span<con
}
}
+ if (result != Common::Input::DriverResult::Success) {
+ return result;
+ }
+
+ // Wait for reply and ignore the output data
+ while (tries++ < timeout_limit) {
+ result = SendNextPackageRequest(output, package_index);
+ const auto nfc_status = static_cast<NFCStatus>(output.mcu_data[6]);
+
+ if (result != Common::Input::DriverResult::Success) {
+ return result;
+ }
+
+ if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::TagLost) {
+ return Common::Input::DriverResult::ErrorReadingData;
+ }
+
+ if (output.mcu_report == MCUReport::NFCState && output.mcu_data[1] == 0x10) {
+ package_index++;
+ continue;
+ }
+
+ if (output.mcu_report == MCUReport::NFCState && nfc_status == NFCStatus::MifareDone) {
+ LOG_INFO(Input, "Finished writing mifare");
+ break;
+ }
+ }
+
return result;
}
-DriverResult NfcProtocol::SendStartPollingRequest(MCUCommandResponse& output,
- bool is_second_attempt) {
+Common::Input::DriverResult NfcProtocol::SendStartPollingRequest(MCUCommandResponse& output,
+ bool is_second_attempt) {
NFCRequestState request{
.command_argument = NFCCommand::StartPolling,
.block_id = {},
@@ -367,7 +638,7 @@ DriverResult NfcProtocol::SendStartPollingRequest(MCUCommandResponse& output,
output);
}
-DriverResult NfcProtocol::SendStopPollingRequest(MCUCommandResponse& output) {
+Common::Input::DriverResult NfcProtocol::SendStopPollingRequest(MCUCommandResponse& output) {
NFCRequestState request{
.command_argument = NFCCommand::StopPolling,
.block_id = {},
@@ -385,7 +656,8 @@ DriverResult NfcProtocol::SendStopPollingRequest(MCUCommandResponse& output) {
output);
}
-DriverResult NfcProtocol::SendNextPackageRequest(MCUCommandResponse& output, u8 packet_id) {
+Common::Input::DriverResult NfcProtocol::SendNextPackageRequest(MCUCommandResponse& output,
+ u8 packet_id) {
NFCRequestState request{
.command_argument = NFCCommand::StartWaitingRecieve,
.block_id = {},
@@ -403,7 +675,8 @@ DriverResult NfcProtocol::SendNextPackageRequest(MCUCommandResponse& output, u8
output);
}
-DriverResult NfcProtocol::SendReadAmiiboRequest(MCUCommandResponse& output, NFCPages ntag_pages) {
+Common::Input::DriverResult NfcProtocol::SendReadAmiiboRequest(MCUCommandResponse& output,
+ NFCPages ntag_pages) {
NFCRequestState request{
.command_argument = NFCCommand::ReadNtag,
.block_id = {},
@@ -428,8 +701,8 @@ DriverResult NfcProtocol::SendReadAmiiboRequest(MCUCommandResponse& output, NFCP
output);
}
-DriverResult NfcProtocol::SendWriteAmiiboRequest(MCUCommandResponse& output,
- const TagUUID& tag_uuid) {
+Common::Input::DriverResult NfcProtocol::SendWriteAmiiboRequest(MCUCommandResponse& output,
+ const TagUUID& tag_uuid) {
NFCRequestState request{
.command_argument = NFCCommand::ReadNtag,
.block_id = {},
@@ -454,9 +727,10 @@ DriverResult NfcProtocol::SendWriteAmiiboRequest(MCUCommandResponse& output,
output);
}
-DriverResult NfcProtocol::SendWriteDataAmiiboRequest(MCUCommandResponse& output, u8 block_id,
- bool is_last_packet,
- std::span<const u8> data) {
+Common::Input::DriverResult NfcProtocol::SendWriteDataAmiiboRequest(MCUCommandResponse& output,
+ u8 block_id,
+ bool is_last_packet,
+ std::span<const u8> data) {
const auto data_size = std::min(data.size(), sizeof(NFCRequestState::raw_data));
NFCRequestState request{
.command_argument = NFCCommand::WriteNtag,
@@ -477,6 +751,29 @@ DriverResult NfcProtocol::SendWriteDataAmiiboRequest(MCUCommandResponse& output,
output);
}
+Common::Input::DriverResult NfcProtocol::SendReadDataMifareRequest(MCUCommandResponse& output,
+ u8 block_id, bool is_last_packet,
+ std::span<const u8> data) {
+ const auto data_size = std::min(data.size(), sizeof(NFCRequestState::raw_data));
+ NFCRequestState request{
+ .command_argument = NFCCommand::Mifare,
+ .block_id = block_id,
+ .packet_id = {},
+ .packet_flag =
+ is_last_packet ? MCUPacketFlag::LastCommandPacket : MCUPacketFlag::MorePacketsRemaining,
+ .data_length = static_cast<u8>(data_size),
+ .raw_data = {},
+ .crc = {},
+ };
+ memcpy(request.raw_data.data(), data.data(), data_size);
+
+ std::array<u8, sizeof(NFCRequestState)> request_data{};
+ memcpy(request_data.data(), &request, sizeof(NFCRequestState));
+ request_data[36] = CalculateMCU_CRC8(request_data.data(), 36);
+ return SendMCUData(ReportMode::NFC_IR_MODE_60HZ, MCUSubCommand::ReadDeviceMode, request_data,
+ output);
+}
+
std::vector<u8> NfcProtocol::SerializeWritePackage(const NFCWritePackage& package) const {
const std::size_t header_size =
sizeof(NFCWriteCommandData) + sizeof(NFCWritePackage::number_of_chunks);
@@ -498,6 +795,48 @@ std::vector<u8> NfcProtocol::SerializeWritePackage(const NFCWritePackage& packag
return serialized_data;
}
+std::vector<u8> NfcProtocol::SerializeMifareReadPackage(const MifareReadPackage& package) const {
+ const std::size_t header_size = sizeof(MifareCommandData);
+ std::vector<u8> serialized_data(header_size);
+ std::size_t start_index = 0;
+
+ memcpy(serialized_data.data(), &package, header_size);
+ start_index += header_size;
+
+ for (const auto& data_chunk : package.data_chunks) {
+ const std::size_t chunk_size = sizeof(MifareReadChunk);
+ if (data_chunk.command == MifareCmd::None) {
+ continue;
+ }
+ serialized_data.resize(start_index + chunk_size);
+ memcpy(serialized_data.data() + start_index, &data_chunk, chunk_size);
+ start_index += chunk_size;
+ }
+
+ return serialized_data;
+}
+
+std::vector<u8> NfcProtocol::SerializeMifareWritePackage(const MifareWritePackage& package) const {
+ const std::size_t header_size = sizeof(MifareCommandData);
+ std::vector<u8> serialized_data(header_size);
+ std::size_t start_index = 0;
+
+ memcpy(serialized_data.data(), &package, header_size);
+ start_index += header_size;
+
+ for (const auto& data_chunk : package.data_chunks) {
+ const std::size_t chunk_size = sizeof(MifareWriteChunk);
+ if (data_chunk.command == MifareCmd::None) {
+ continue;
+ }
+ serialized_data.resize(start_index + chunk_size);
+ memcpy(serialized_data.data() + start_index, &data_chunk, chunk_size);
+ start_index += chunk_size;
+ }
+
+ return serialized_data;
+}
+
NFCWritePackage NfcProtocol::MakeAmiiboWritePackage(const TagUUID& tag_uuid,
std::span<const u8> data) const {
return {
@@ -527,6 +866,46 @@ NFCWritePackage NfcProtocol::MakeAmiiboWritePackage(const TagUUID& tag_uuid,
};
}
+MifareReadPackage NfcProtocol::MakeMifareReadPackage(
+ const MifareUUID& tag_uuid, std::span<const MifareReadChunk> read_request) const {
+ MifareReadPackage package{
+ .command_data{
+ .unknown1 = 0xd0,
+ .unknown2 = 0x07,
+ .number_of_short_bytes = static_cast<u8>(
+ ((read_request.size() * sizeof(MifareReadChunk)) + sizeof(MifareUUID)) / 2),
+ .uid = tag_uuid,
+ },
+ .data_chunks = {},
+ };
+
+ for (std::size_t i = 0; i < read_request.size() && i < package.data_chunks.size(); ++i) {
+ package.data_chunks[i] = read_request[i];
+ }
+
+ return package;
+}
+
+MifareWritePackage NfcProtocol::MakeMifareWritePackage(
+ const MifareUUID& tag_uuid, std::span<const MifareWriteChunk> read_request) const {
+ MifareWritePackage package{
+ .command_data{
+ .unknown1 = 0xd0,
+ .unknown2 = 0x07,
+ .number_of_short_bytes = static_cast<u8>(
+ ((read_request.size() * sizeof(MifareReadChunk)) + sizeof(MifareUUID) + 2) / 2),
+ .uid = tag_uuid,
+ },
+ .data_chunks = {},
+ };
+
+ for (std::size_t i = 0; i < read_request.size() && i < package.data_chunks.size(); ++i) {
+ package.data_chunks[i] = read_request[i];
+ }
+
+ return package;
+}
+
NFCDataChunk NfcProtocol::MakeAmiiboChunk(u8 page, u8 size, std::span<const u8> data) const {
constexpr u8 NFC_PAGE_SIZE = 4;
@@ -606,4 +985,8 @@ bool NfcProtocol::IsEnabled() const {
return is_enabled;
}
+bool NfcProtocol::IsPolling() const {
+ return is_polling;
+}
+
} // namespace InputCommon::Joycon
diff --git a/src/input_common/helpers/joycon_protocol/nfc.h b/src/input_common/helpers/joycon_protocol/nfc.h
index eb58c427d..22db95170 100644
--- a/src/input_common/helpers/joycon_protocol/nfc.h
+++ b/src/input_common/helpers/joycon_protocol/nfc.h
@@ -13,26 +13,41 @@
#include "input_common/helpers/joycon_protocol/common_protocol.h"
#include "input_common/helpers/joycon_protocol/joycon_types.h"
+namespace Common::Input {
+enum class DriverResult;
+}
+
namespace InputCommon::Joycon {
class NfcProtocol final : private JoyconCommonProtocol {
public:
explicit NfcProtocol(std::shared_ptr<JoyconHandle> handle);
- DriverResult EnableNfc();
+ Common::Input::DriverResult EnableNfc();
+
+ Common::Input::DriverResult DisableNfc();
+
+ Common::Input::DriverResult StartNFCPollingMode();
+
+ Common::Input::DriverResult StopNFCPollingMode();
- DriverResult DisableNfc();
+ Common::Input::DriverResult GetTagInfo(Joycon::TagInfo& tag_info);
- DriverResult StartNFCPollingMode();
+ Common::Input::DriverResult ReadAmiibo(std::vector<u8>& data);
- DriverResult ScanAmiibo(std::vector<u8>& data);
+ Common::Input::DriverResult WriteAmiibo(std::span<const u8> data);
- DriverResult WriteAmiibo(std::span<const u8> data);
+ Common::Input::DriverResult ReadMifare(std::span<const MifareReadChunk> read_request,
+ std::span<MifareReadData> out_data);
+
+ Common::Input::DriverResult WriteMifare(std::span<const MifareWriteChunk> write_request);
bool HasAmiibo();
bool IsEnabled() const;
+ bool IsPolling() const;
+
private:
// Number of times the function will be delayed until it outputs valid data
static constexpr std::size_t AMIIBO_UPDATE_DELAY = 15;
@@ -43,39 +58,64 @@ private:
TagUUID uuid;
};
- DriverResult WaitUntilNfcIs(NFCStatus status);
+ Common::Input::DriverResult WaitUntilNfcIs(NFCStatus status);
+
+ Common::Input::DriverResult IsTagInRange(TagFoundData& data, std::size_t timeout_limit = 1);
- DriverResult IsTagInRange(TagFoundData& data, std::size_t timeout_limit = 1);
+ Common::Input::DriverResult GetAmiiboData(std::vector<u8>& data);
- DriverResult GetAmiiboData(std::vector<u8>& data);
+ Common::Input::DriverResult WriteAmiiboData(const TagUUID& tag_uuid, std::span<const u8> data);
- DriverResult WriteAmiiboData(const TagUUID& tag_uuid, std::span<const u8> data);
+ Common::Input::DriverResult GetMifareData(const MifareUUID& tag_uuid,
+ std::span<const MifareReadChunk> read_request,
+ std::span<MifareReadData> out_data);
- DriverResult SendStartPollingRequest(MCUCommandResponse& output,
- bool is_second_attempt = false);
+ Common::Input::DriverResult WriteMifareData(const MifareUUID& tag_uuid,
+ std::span<const MifareWriteChunk> write_request);
- DriverResult SendStopPollingRequest(MCUCommandResponse& output);
+ Common::Input::DriverResult SendStartPollingRequest(MCUCommandResponse& output,
+ bool is_second_attempt = false);
- DriverResult SendNextPackageRequest(MCUCommandResponse& output, u8 packet_id);
+ Common::Input::DriverResult SendStopPollingRequest(MCUCommandResponse& output);
- DriverResult SendReadAmiiboRequest(MCUCommandResponse& output, NFCPages ntag_pages);
+ Common::Input::DriverResult SendNextPackageRequest(MCUCommandResponse& output, u8 packet_id);
- DriverResult SendWriteAmiiboRequest(MCUCommandResponse& output, const TagUUID& tag_uuid);
+ Common::Input::DriverResult SendReadAmiiboRequest(MCUCommandResponse& output,
+ NFCPages ntag_pages);
- DriverResult SendWriteDataAmiiboRequest(MCUCommandResponse& output, u8 block_id,
- bool is_last_packet, std::span<const u8> data);
+ Common::Input::DriverResult SendWriteAmiiboRequest(MCUCommandResponse& output,
+ const TagUUID& tag_uuid);
+
+ Common::Input::DriverResult SendWriteDataAmiiboRequest(MCUCommandResponse& output, u8 block_id,
+ bool is_last_packet,
+ std::span<const u8> data);
+
+ Common::Input::DriverResult SendReadDataMifareRequest(MCUCommandResponse& output, u8 block_id,
+ bool is_last_packet,
+ std::span<const u8> data);
std::vector<u8> SerializeWritePackage(const NFCWritePackage& package) const;
+ std::vector<u8> SerializeMifareReadPackage(const MifareReadPackage& package) const;
+
+ std::vector<u8> SerializeMifareWritePackage(const MifareWritePackage& package) const;
+
NFCWritePackage MakeAmiiboWritePackage(const TagUUID& tag_uuid, std::span<const u8> data) const;
NFCDataChunk MakeAmiiboChunk(u8 page, u8 size, std::span<const u8> data) const;
+ MifareReadPackage MakeMifareReadPackage(const MifareUUID& tag_uuid,
+ std::span<const MifareReadChunk> read_request) const;
+
+ MifareWritePackage MakeMifareWritePackage(const MifareUUID& tag_uuid,
+ std::span<const MifareWriteChunk> read_request) const;
+
NFCReadBlockCommand GetReadBlockCommand(NFCPages pages) const;
TagUUID GetTagUUID(std::span<const u8> data) const;
bool is_enabled{};
+ bool is_polling{};
std::size_t update_counter{};
};
diff --git a/src/input_common/helpers/joycon_protocol/poller.cpp b/src/input_common/helpers/joycon_protocol/poller.cpp
index dca797f7a..1aab9e12a 100644
--- a/src/input_common/helpers/joycon_protocol/poller.cpp
+++ b/src/input_common/helpers/joycon_protocol/poller.cpp
@@ -70,8 +70,8 @@ void JoyconPoller::UpdateColor(const Color& color) {
callbacks.on_color_data(color);
}
-void JoyconPoller::UpdateAmiibo(const std::vector<u8>& amiibo_data) {
- callbacks.on_amiibo_data(amiibo_data);
+void JoyconPoller::UpdateAmiibo(const Joycon::TagInfo& tag_info) {
+ callbacks.on_amiibo_data(tag_info);
}
void JoyconPoller::UpdateCamera(const std::vector<u8>& camera_data, IrsResolution format) {
diff --git a/src/input_common/helpers/joycon_protocol/poller.h b/src/input_common/helpers/joycon_protocol/poller.h
index 0fa72c6db..3746abe5d 100644
--- a/src/input_common/helpers/joycon_protocol/poller.h
+++ b/src/input_common/helpers/joycon_protocol/poller.h
@@ -36,8 +36,8 @@ public:
void UpdateColor(const Color& color);
void UpdateRing(s16 value, const RingStatus& ring_status);
- void UpdateAmiibo(const std::vector<u8>& amiibo_data);
- void UpdateCamera(const std::vector<u8>& amiibo_data, IrsResolution format);
+ void UpdateAmiibo(const Joycon::TagInfo& tag_info);
+ void UpdateCamera(const std::vector<u8>& camera_data, IrsResolution format);
private:
void UpdateActiveLeftPadInput(const InputReportActive& input,
diff --git a/src/input_common/helpers/joycon_protocol/ringcon.cpp b/src/input_common/helpers/joycon_protocol/ringcon.cpp
index 190cef812..96414fb67 100644
--- a/src/input_common/helpers/joycon_protocol/ringcon.cpp
+++ b/src/input_common/helpers/joycon_protocol/ringcon.cpp
@@ -1,6 +1,7 @@
// SPDX-FileCopyrightText: Copyright 2022 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
+#include "common/input.h"
#include "common/logging/log.h"
#include "input_common/helpers/joycon_protocol/ringcon.h"
@@ -9,18 +10,18 @@ namespace InputCommon::Joycon {
RingConProtocol::RingConProtocol(std::shared_ptr<JoyconHandle> handle)
: JoyconCommonProtocol(std::move(handle)) {}
-DriverResult RingConProtocol::EnableRingCon() {
+Common::Input::DriverResult RingConProtocol::EnableRingCon() {
LOG_DEBUG(Input, "Enable Ringcon");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = SetReportMode(ReportMode::STANDARD_FULL_60HZ);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = EnableMCU(true);
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
const MCUConfig config{
.command = MCUCommand::ConfigureMCU,
.sub_command = MCUSubCommand::SetDeviceMode,
@@ -33,12 +34,12 @@ DriverResult RingConProtocol::EnableRingCon() {
return result;
}
-DriverResult RingConProtocol::DisableRingCon() {
+Common::Input::DriverResult RingConProtocol::DisableRingCon() {
LOG_DEBUG(Input, "Disable RingCon");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = EnableMCU(false);
}
@@ -47,29 +48,29 @@ DriverResult RingConProtocol::DisableRingCon() {
return result;
}
-DriverResult RingConProtocol::StartRingconPolling() {
+Common::Input::DriverResult RingConProtocol::StartRingconPolling() {
LOG_DEBUG(Input, "Enable Ringcon");
ScopedSetBlocking sb(this);
- DriverResult result{DriverResult::Success};
+ Common::Input::DriverResult result{Common::Input::DriverResult::Success};
bool is_connected = false;
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
result = IsRingConnected(is_connected);
}
- if (result == DriverResult::Success && is_connected) {
+ if (result == Common::Input::DriverResult::Success && is_connected) {
LOG_INFO(Input, "Ringcon detected");
result = ConfigureRing();
}
- if (result == DriverResult::Success) {
+ if (result == Common::Input::DriverResult::Success) {
is_enabled = true;
}
return result;
}
-DriverResult RingConProtocol::IsRingConnected(bool& is_connected) {
+Common::Input::DriverResult RingConProtocol::IsRingConnected(bool& is_connected) {
LOG_DEBUG(Input, "IsRingConnected");
- constexpr std::size_t max_tries = 28;
+ constexpr std::size_t max_tries = 42;
SubCommandResponse output{};
std::size_t tries = 0;
is_connected = false;
@@ -77,20 +78,21 @@ DriverResult RingConProtocol::IsRingConnected(bool& is_connected) {
do {
const auto result = SendSubCommand(SubCommand::GET_EXTERNAL_DEVICE_INFO, {}, output);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success &&
+ result != Common::Input::DriverResult::Timeout) {
return result;
}
if (tries++ >= max_tries) {
- return DriverResult::NoDeviceDetected;
+ return Common::Input::DriverResult::NoDeviceDetected;
}
} while (output.external_device_id != ExternalDeviceId::RingController);
is_connected = true;
- return DriverResult::Success;
+ return Common::Input::DriverResult::Success;
}
-DriverResult RingConProtocol::ConfigureRing() {
+Common::Input::DriverResult RingConProtocol::ConfigureRing() {
LOG_DEBUG(Input, "ConfigureRing");
static constexpr std::array<u8, 37> ring_config{
@@ -98,9 +100,10 @@ DriverResult RingConProtocol::ConfigureRing() {
0x00, 0x00, 0x00, 0x0A, 0x64, 0x0B, 0xE6, 0xA9, 0x22, 0x00, 0x00, 0x04, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xA8, 0xE1, 0x34, 0x36};
- const DriverResult result = SendSubCommand(SubCommand::SET_EXTERNAL_FORMAT_CONFIG, ring_config);
+ const Common::Input::DriverResult result =
+ SendSubCommand(SubCommand::SET_EXTERNAL_FORMAT_CONFIG, ring_config);
- if (result != DriverResult::Success) {
+ if (result != Common::Input::DriverResult::Success) {
return result;
}
diff --git a/src/input_common/helpers/joycon_protocol/ringcon.h b/src/input_common/helpers/joycon_protocol/ringcon.h
index 6e858f3fc..9f0888de3 100644
--- a/src/input_common/helpers/joycon_protocol/ringcon.h
+++ b/src/input_common/helpers/joycon_protocol/ringcon.h
@@ -13,24 +13,28 @@
#include "input_common/helpers/joycon_protocol/common_protocol.h"
#include "input_common/helpers/joycon_protocol/joycon_types.h"
+namespace Common::Input {
+enum class DriverResult;
+}
+
namespace InputCommon::Joycon {
class RingConProtocol final : private JoyconCommonProtocol {
public:
explicit RingConProtocol(std::shared_ptr<JoyconHandle> handle);
- DriverResult EnableRingCon();
+ Common::Input::DriverResult EnableRingCon();
- DriverResult DisableRingCon();
+ Common::Input::DriverResult DisableRingCon();
- DriverResult StartRingconPolling();
+ Common::Input::DriverResult StartRingconPolling();
bool IsEnabled() const;
private:
- DriverResult IsRingConnected(bool& is_connected);
+ Common::Input::DriverResult IsRingConnected(bool& is_connected);
- DriverResult ConfigureRing();
+ Common::Input::DriverResult ConfigureRing();
bool is_enabled{};
};
diff --git a/src/input_common/helpers/joycon_protocol/rumble.cpp b/src/input_common/helpers/joycon_protocol/rumble.cpp
index 63b60c946..7647f505e 100644
--- a/src/input_common/helpers/joycon_protocol/rumble.cpp
+++ b/src/input_common/helpers/joycon_protocol/rumble.cpp
@@ -4,6 +4,7 @@
#include <algorithm>
#include <cmath>
+#include "common/input.h"
#include "common/logging/log.h"
#include "input_common/helpers/joycon_protocol/rumble.h"
@@ -12,14 +13,14 @@ namespace InputCommon::Joycon {
RumbleProtocol::RumbleProtocol(std::shared_ptr<JoyconHandle> handle)
: JoyconCommonProtocol(std::move(handle)) {}
-DriverResult RumbleProtocol::EnableRumble(bool is_enabled) {
+Common::Input::DriverResult RumbleProtocol::EnableRumble(bool is_enabled) {
LOG_DEBUG(Input, "Enable Rumble");
ScopedSetBlocking sb(this);
const std::array<u8, 1> buffer{static_cast<u8>(is_enabled ? 1 : 0)};
return SendSubCommand(SubCommand::ENABLE_VIBRATION, buffer);
}
-DriverResult RumbleProtocol::SendVibration(const VibrationValue& vibration) {
+Common::Input::DriverResult RumbleProtocol::SendVibration(const VibrationValue& vibration) {
std::array<u8, sizeof(DefaultVibrationBuffer)> buffer{};
if (vibration.high_amplitude <= 0.0f && vibration.low_amplitude <= 0.0f) {
diff --git a/src/input_common/helpers/joycon_protocol/rumble.h b/src/input_common/helpers/joycon_protocol/rumble.h
index 6c12b7925..5e50e531a 100644
--- a/src/input_common/helpers/joycon_protocol/rumble.h
+++ b/src/input_common/helpers/joycon_protocol/rumble.h
@@ -13,15 +13,19 @@
#include "input_common/helpers/joycon_protocol/common_protocol.h"
#include "input_common/helpers/joycon_protocol/joycon_types.h"
+namespace Common::Input {
+enum class DriverResult;
+}
+
namespace InputCommon::Joycon {
class RumbleProtocol final : private JoyconCommonProtocol {
public:
explicit RumbleProtocol(std::shared_ptr<JoyconHandle> handle);
- DriverResult EnableRumble(bool is_enabled);
+ Common::Input::DriverResult EnableRumble(bool is_enabled);
- DriverResult SendVibration(const VibrationValue& vibration);
+ Common::Input::DriverResult SendVibration(const VibrationValue& vibration);
private:
u16 EncodeHighFrequency(f32 frequency) const;
diff --git a/src/input_common/input_engine.h b/src/input_common/input_engine.h
index 50b5a3dc8..c2d0cbb34 100644
--- a/src/input_common/input_engine.h
+++ b/src/input_common/input_engine.h
@@ -143,12 +143,46 @@ public:
return Common::Input::NfcState::NotSupported;
}
+ // Start scanning for nfc tags
+ virtual Common::Input::NfcState StartNfcPolling(
+ [[maybe_unused]] const PadIdentifier& identifier_) {
+ return Common::Input::NfcState::NotSupported;
+ }
+
+ // Start scanning for nfc tags
+ virtual Common::Input::NfcState StopNfcPolling(
+ [[maybe_unused]] const PadIdentifier& identifier_) {
+ return Common::Input::NfcState::NotSupported;
+ }
+
+ // Reads data from amiibo tag
+ virtual Common::Input::NfcState ReadAmiiboData(
+ [[maybe_unused]] const PadIdentifier& identifier_,
+ [[maybe_unused]] std::vector<u8>& out_data) {
+ return Common::Input::NfcState::NotSupported;
+ }
+
// Writes data to an nfc tag
virtual Common::Input::NfcState WriteNfcData([[maybe_unused]] const PadIdentifier& identifier,
[[maybe_unused]] const std::vector<u8>& data) {
return Common::Input::NfcState::NotSupported;
}
+ // Reads data from mifare tag
+ virtual Common::Input::NfcState ReadMifareData(
+ [[maybe_unused]] const PadIdentifier& identifier_,
+ [[maybe_unused]] const Common::Input::MifareRequest& request,
+ [[maybe_unused]] Common::Input::MifareRequest& out_data) {
+ return Common::Input::NfcState::NotSupported;
+ }
+
+ // Write data to mifare tag
+ virtual Common::Input::NfcState WriteMifareData(
+ [[maybe_unused]] const PadIdentifier& identifier_,
+ [[maybe_unused]] const Common::Input::MifareRequest& request) {
+ return Common::Input::NfcState::NotSupported;
+ }
+
// Returns the engine name
[[nodiscard]] const std::string& GetEngineName() const;
diff --git a/src/input_common/input_poller.cpp b/src/input_common/input_poller.cpp
index 380a01542..870e76ab0 100644
--- a/src/input_common/input_poller.cpp
+++ b/src/input_common/input_poller.cpp
@@ -792,8 +792,7 @@ public:
const Common::Input::CallbackStatus status{
.type = Common::Input::InputType::Nfc,
- .nfc_status = nfc_status.state,
- .raw_data = nfc_status.data,
+ .nfc_status = nfc_status,
};
TriggerOnChange(status);
@@ -836,10 +835,31 @@ public:
return input_engine->SupportsNfc(identifier);
}
+ Common::Input::NfcState StartNfcPolling() {
+ return input_engine->StartNfcPolling(identifier);
+ }
+
+ Common::Input::NfcState StopNfcPolling() {
+ return input_engine->StopNfcPolling(identifier);
+ }
+
+ Common::Input::NfcState ReadAmiiboData(std::vector<u8>& out_data) {
+ return input_engine->ReadAmiiboData(identifier, out_data);
+ }
+
Common::Input::NfcState WriteNfcData(const std::vector<u8>& data) override {
return input_engine->WriteNfcData(identifier, data);
}
+ Common::Input::NfcState ReadMifareData(const Common::Input::MifareRequest& request,
+ Common::Input::MifareRequest& out_data) {
+ return input_engine->ReadMifareData(identifier, request, out_data);
+ }
+
+ Common::Input::NfcState WriteMifareData(const Common::Input::MifareRequest& request) {
+ return input_engine->WriteMifareData(identifier, request);
+ }
+
private:
const PadIdentifier identifier;
InputEngine* input_engine;
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm.cpp b/src/shader_recompiler/backend/glasm/emit_glasm.cpp
index fd4a61a4d..b795c0179 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm.cpp
@@ -461,7 +461,7 @@ std::string EmitGLASM(const Profile& profile, const RuntimeInfo& runtime_info, I
header += fmt::format("R{},", index);
}
if (program.local_memory_size > 0) {
- header += fmt::format("lmem[{}],", program.local_memory_size);
+ header += fmt::format("lmem[{}],", Common::DivCeil(program.local_memory_size, 4U));
}
if (program.info.uses_fswzadd) {
header += "FSWZA[4],FSWZB[4],";
diff --git a/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp b/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp
index c3c2281bb..9ff4028c2 100644
--- a/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp
+++ b/src/shader_recompiler/backend/glsl/glsl_emit_context.cpp
@@ -479,7 +479,7 @@ void EmitContext::DefineGenericOutput(size_t index, u32 invocations) {
const u32 remainder{4 - element};
const TransformFeedbackVarying* xfb_varying{};
const size_t xfb_varying_index{base_index + element};
- if (xfb_varying_index < runtime_info.xfb_varyings.size()) {
+ if (xfb_varying_index < runtime_info.xfb_count) {
xfb_varying = &runtime_info.xfb_varyings[xfb_varying_index];
xfb_varying = xfb_varying->components > 0 ? xfb_varying : nullptr;
}
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.cpp b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
index 0f86a8004..34592a01f 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv.cpp
@@ -387,7 +387,7 @@ void SetupSignedNanCapabilities(const Profile& profile, const IR::Program& progr
}
void SetupTransformFeedbackCapabilities(EmitContext& ctx, Id main_func) {
- if (ctx.runtime_info.xfb_varyings.empty()) {
+ if (ctx.runtime_info.xfb_count == 0) {
return;
}
ctx.AddCapability(spv::Capability::TransformFeedback);
diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
index fd15f47ea..bec5db173 100644
--- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
+++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp
@@ -160,7 +160,7 @@ void DefineGenericOutput(EmitContext& ctx, size_t index, std::optional<u32> invo
const u32 remainder{4 - element};
const TransformFeedbackVarying* xfb_varying{};
const size_t xfb_varying_index{base_attr_index + element};
- if (xfb_varying_index < ctx.runtime_info.xfb_varyings.size()) {
+ if (xfb_varying_index < ctx.runtime_info.xfb_count) {
xfb_varying = &ctx.runtime_info.xfb_varyings[xfb_varying_index];
xfb_varying = xfb_varying->components > 0 ? xfb_varying : nullptr;
}
diff --git a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
index 5a4195217..70292686f 100644
--- a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
+++ b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
@@ -424,6 +424,10 @@ void VisitUsages(Info& info, IR::Inst& inst) {
info.used_constant_buffer_types |= IR::Type::U32 | IR::Type::U32x2;
info.used_storage_buffer_types |= IR::Type::U32 | IR::Type::U32x2 | IR::Type::U32x4;
break;
+ case IR::Opcode::LoadLocal:
+ case IR::Opcode::WriteLocal:
+ info.uses_local_memory = true;
+ break;
default:
break;
}
diff --git a/src/shader_recompiler/runtime_info.h b/src/shader_recompiler/runtime_info.h
index 3b63c249f..619c0b138 100644
--- a/src/shader_recompiler/runtime_info.h
+++ b/src/shader_recompiler/runtime_info.h
@@ -84,7 +84,8 @@ struct RuntimeInfo {
bool glasm_use_storage_buffers{};
/// Transform feedback state for each varying
- std::vector<TransformFeedbackVarying> xfb_varyings;
+ std::array<TransformFeedbackVarying, 256> xfb_varyings{};
+ u32 xfb_count{0};
};
} // namespace Shader
diff --git a/src/shader_recompiler/shader_info.h b/src/shader_recompiler/shader_info.h
index d308db942..b4b4afd37 100644
--- a/src/shader_recompiler/shader_info.h
+++ b/src/shader_recompiler/shader_info.h
@@ -172,6 +172,7 @@ struct Info {
bool stores_indexed_attributes{};
bool stores_global_memory{};
+ bool uses_local_memory{};
bool uses_fp16{};
bool uses_fp64{};
diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt
index bf6439530..3b2fe01da 100644
--- a/src/video_core/CMakeLists.txt
+++ b/src/video_core/CMakeLists.txt
@@ -220,8 +220,8 @@ add_library(video_core STATIC
surface.h
texture_cache/accelerated_swizzle.cpp
texture_cache/accelerated_swizzle.h
- texture_cache/decode_bc4.cpp
- texture_cache/decode_bc4.h
+ texture_cache/decode_bc.cpp
+ texture_cache/decode_bc.h
texture_cache/descriptor_table.h
texture_cache/formatter.cpp
texture_cache/formatter.h
@@ -279,7 +279,7 @@ add_library(video_core STATIC
create_target_directory_groups(video_core)
target_link_libraries(video_core PUBLIC common core)
-target_link_libraries(video_core PUBLIC glad shader_recompiler stb)
+target_link_libraries(video_core PUBLIC glad shader_recompiler stb bc_decoder)
if (YUZU_USE_BUNDLED_FFMPEG AND NOT (WIN32 OR ANDROID))
add_dependencies(video_core ffmpeg-build)
@@ -291,7 +291,7 @@ target_link_options(video_core PRIVATE ${FFmpeg_LDFLAGS})
add_dependencies(video_core host_shaders)
target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE})
-target_link_libraries(video_core PRIVATE sirit Vulkan::Headers)
+target_link_libraries(video_core PRIVATE sirit Vulkan::Headers vma)
if (ENABLE_NSIGHT_AFTERMATH)
if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})
diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h
index 45977d578..58a45ab67 100644
--- a/src/video_core/buffer_cache/buffer_cache.h
+++ b/src/video_core/buffer_cache/buffer_cache.h
@@ -207,7 +207,7 @@ bool BufferCache<P>::DMACopy(GPUVAddr src_address, GPUVAddr dest_address, u64 am
if (has_new_downloads) {
memory_tracker.MarkRegionAsGpuModified(*cpu_dest_address, amount);
}
- tmp_buffer.resize(amount);
+ tmp_buffer.resize_destructive(amount);
cpu_memory.ReadBlockUnsafe(*cpu_src_address, tmp_buffer.data(), amount);
cpu_memory.WriteBlockUnsafe(*cpu_dest_address, tmp_buffer.data(), amount);
return true;
@@ -1279,7 +1279,7 @@ template <class P>
typename BufferCache<P>::OverlapResult BufferCache<P>::ResolveOverlaps(VAddr cpu_addr,
u32 wanted_size) {
static constexpr int STREAM_LEAP_THRESHOLD = 16;
- std::vector<BufferId> overlap_ids;
+ boost::container::small_vector<BufferId, 16> overlap_ids;
VAddr begin = cpu_addr;
VAddr end = cpu_addr + wanted_size;
int stream_score = 0;
diff --git a/src/video_core/buffer_cache/buffer_cache_base.h b/src/video_core/buffer_cache/buffer_cache_base.h
index 63a120f7a..fe6068cfe 100644
--- a/src/video_core/buffer_cache/buffer_cache_base.h
+++ b/src/video_core/buffer_cache/buffer_cache_base.h
@@ -229,7 +229,7 @@ class BufferCache : public VideoCommon::ChannelSetupCaches<BufferCacheChannelInf
using OverlapCounter = boost::icl::split_interval_map<VAddr, int>;
struct OverlapResult {
- std::vector<BufferId> ids;
+ boost::container::small_vector<BufferId, 16> ids;
VAddr begin;
VAddr end;
bool has_stream_leap = false;
@@ -582,7 +582,7 @@ private:
BufferId inline_buffer_id;
std::array<BufferId, ((1ULL << 39) >> CACHING_PAGEBITS)> page_table;
- std::vector<u8> tmp_buffer;
+ Common::ScratchBuffer<u8> tmp_buffer;
};
} // namespace VideoCommon
diff --git a/src/video_core/cdma_pusher.h b/src/video_core/cdma_pusher.h
index 83112dfce..7d660af47 100644
--- a/src/video_core/cdma_pusher.h
+++ b/src/video_core/cdma_pusher.h
@@ -63,7 +63,6 @@ struct ChCommand {
};
using ChCommandHeaderList = std::vector<ChCommandHeader>;
-using ChCommandList = std::vector<ChCommand>;
struct ThiRegisters {
u32_le increment_syncpt{};
diff --git a/src/video_core/dma_pusher.h b/src/video_core/dma_pusher.h
index 1cdb690ed..8a2784cdc 100644
--- a/src/video_core/dma_pusher.h
+++ b/src/video_core/dma_pusher.h
@@ -6,6 +6,7 @@
#include <array>
#include <span>
#include <vector>
+#include <boost/container/small_vector.hpp>
#include <queue>
#include "common/bit_field.h"
@@ -102,11 +103,12 @@ inline CommandHeader BuildCommandHeader(BufferMethods method, u32 arg_count, Sub
struct CommandList final {
CommandList() = default;
explicit CommandList(std::size_t size) : command_lists(size) {}
- explicit CommandList(std::vector<CommandHeader>&& prefetch_command_list_)
+ explicit CommandList(
+ boost::container::small_vector<CommandHeader, 512>&& prefetch_command_list_)
: prefetch_command_list{std::move(prefetch_command_list_)} {}
- std::vector<CommandListHeader> command_lists;
- std::vector<CommandHeader> prefetch_command_list;
+ boost::container::small_vector<CommandListHeader, 512> command_lists;
+ boost::container::small_vector<CommandHeader, 512> prefetch_command_list;
};
/**
diff --git a/src/video_core/engines/maxwell_dma.cpp b/src/video_core/engines/maxwell_dma.cpp
index ebe5536de..a290d6ea7 100644
--- a/src/video_core/engines/maxwell_dma.cpp
+++ b/src/video_core/engines/maxwell_dma.cpp
@@ -108,9 +108,11 @@ void MaxwellDMA::Launch() {
if (regs.launch_dma.remap_enable != 0 && is_const_a_dst) {
ASSERT(regs.remap_const.component_size_minus_one == 3);
accelerate.BufferClear(regs.offset_out, regs.line_length_in, regs.remap_consta_value);
- std::vector<u32> tmp_buffer(regs.line_length_in, regs.remap_consta_value);
+ read_buffer.resize_destructive(regs.line_length_in * sizeof(u32));
+ std::span<u32> span(reinterpret_cast<u32*>(read_buffer.data()), regs.line_length_in);
+ std::ranges::fill(span, regs.remap_consta_value);
memory_manager.WriteBlockUnsafe(regs.offset_out,
- reinterpret_cast<u8*>(tmp_buffer.data()),
+ reinterpret_cast<u8*>(read_buffer.data()),
regs.line_length_in * sizeof(u32));
} else {
memory_manager.FlushCaching();
@@ -126,32 +128,33 @@ void MaxwellDMA::Launch() {
UNIMPLEMENTED_IF(regs.line_length_in % 16 != 0);
UNIMPLEMENTED_IF(regs.offset_in % 16 != 0);
UNIMPLEMENTED_IF(regs.offset_out % 16 != 0);
- std::vector<u8> tmp_buffer(16);
+ read_buffer.resize_destructive(16);
for (u32 offset = 0; offset < regs.line_length_in; offset += 16) {
- memory_manager.ReadBlockUnsafe(
+ memory_manager.ReadBlock(
convert_linear_2_blocklinear_addr(regs.offset_in + offset),
- tmp_buffer.data(), tmp_buffer.size());
- memory_manager.WriteBlockCached(regs.offset_out + offset, tmp_buffer.data(),
- tmp_buffer.size());
+ read_buffer.data(), read_buffer.size());
+ memory_manager.WriteBlockCached(regs.offset_out + offset, read_buffer.data(),
+ read_buffer.size());
}
} else if (is_src_pitch && !is_dst_pitch) {
UNIMPLEMENTED_IF(regs.line_length_in % 16 != 0);
UNIMPLEMENTED_IF(regs.offset_in % 16 != 0);
UNIMPLEMENTED_IF(regs.offset_out % 16 != 0);
- std::vector<u8> tmp_buffer(16);
+ read_buffer.resize_destructive(16);
for (u32 offset = 0; offset < regs.line_length_in; offset += 16) {
- memory_manager.ReadBlockUnsafe(regs.offset_in + offset, tmp_buffer.data(),
- tmp_buffer.size());
+ memory_manager.ReadBlock(regs.offset_in + offset, read_buffer.data(),
+ read_buffer.size());
memory_manager.WriteBlockCached(
convert_linear_2_blocklinear_addr(regs.offset_out + offset),
- tmp_buffer.data(), tmp_buffer.size());
+ read_buffer.data(), read_buffer.size());
}
} else {
if (!accelerate.BufferCopy(regs.offset_in, regs.offset_out, regs.line_length_in)) {
- std::vector<u8> tmp_buffer(regs.line_length_in);
- memory_manager.ReadBlockUnsafe(regs.offset_in, tmp_buffer.data(),
- regs.line_length_in);
- memory_manager.WriteBlockCached(regs.offset_out, tmp_buffer.data(),
+ read_buffer.resize_destructive(regs.line_length_in);
+ memory_manager.ReadBlock(regs.offset_in, read_buffer.data(),
+ regs.line_length_in,
+ VideoCommon::CacheType::NoBufferCache);
+ memory_manager.WriteBlockCached(regs.offset_out, read_buffer.data(),
regs.line_length_in);
}
}
@@ -171,7 +174,8 @@ void MaxwellDMA::CopyBlockLinearToPitch() {
src_operand.address = regs.offset_in;
DMA::BufferOperand dst_operand;
- dst_operand.pitch = regs.pitch_out;
+ u32 abs_pitch_out = std::abs(static_cast<s32>(regs.pitch_out));
+ dst_operand.pitch = abs_pitch_out;
dst_operand.width = regs.line_length_in;
dst_operand.height = regs.line_count;
dst_operand.address = regs.offset_out;
@@ -218,7 +222,7 @@ void MaxwellDMA::CopyBlockLinearToPitch() {
const size_t src_size =
CalculateSize(true, bytes_per_pixel, width, height, depth, block_height, block_depth);
- const size_t dst_size = static_cast<size_t>(regs.pitch_out) * regs.line_count;
+ const size_t dst_size = static_cast<size_t>(abs_pitch_out) * regs.line_count;
read_buffer.resize_destructive(src_size);
write_buffer.resize_destructive(dst_size);
@@ -227,7 +231,7 @@ void MaxwellDMA::CopyBlockLinearToPitch() {
UnswizzleSubrect(write_buffer, read_buffer, bytes_per_pixel, width, height, depth, x_offset,
src_params.origin.y, x_elements, regs.line_count, block_height, block_depth,
- regs.pitch_out);
+ abs_pitch_out);
memory_manager.WriteBlockCached(regs.offset_out, write_buffer.data(), dst_size);
}
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp
index 456f733cf..db385076d 100644
--- a/src/video_core/gpu.cpp
+++ b/src/video_core/gpu.cpp
@@ -193,18 +193,13 @@ struct GPU::Impl {
}
[[nodiscard]] u64 GetTicks() const {
- // This values were reversed engineered by fincs from NVN
- // The gpu clock is reported in units of 385/625 nanoseconds
- constexpr u64 gpu_ticks_num = 384;
- constexpr u64 gpu_ticks_den = 625;
+ u64 gpu_tick = system.CoreTiming().GetGPUTicks();
- u64 nanoseconds = system.CoreTiming().GetCPUTimeNs().count();
if (Settings::values.use_fast_gpu_time.GetValue()) {
- nanoseconds /= 256;
+ gpu_tick /= 256;
}
- const u64 nanoseconds_num = nanoseconds / gpu_ticks_den;
- const u64 nanoseconds_rem = nanoseconds % gpu_ticks_den;
- return nanoseconds_num * gpu_ticks_num + (nanoseconds_rem * gpu_ticks_num) / gpu_ticks_den;
+
+ return gpu_tick;
}
[[nodiscard]] bool IsAsync() const {
diff --git a/src/video_core/host1x/codecs/h264.cpp b/src/video_core/host1x/codecs/h264.cpp
index 6ce179167..ce827eb6c 100644
--- a/src/video_core/host1x/codecs/h264.cpp
+++ b/src/video_core/host1x/codecs/h264.cpp
@@ -4,6 +4,7 @@
#include <array>
#include <bit>
+#include "common/scratch_buffer.h"
#include "common/settings.h"
#include "video_core/host1x/codecs/h264.h"
#include "video_core/host1x/host1x.h"
@@ -188,7 +189,8 @@ void H264BitWriter::WriteBit(bool state) {
}
void H264BitWriter::WriteScalingList(std::span<const u8> list, s32 start, s32 count) {
- std::vector<u8> scan(count);
+ static Common::ScratchBuffer<u8> scan{};
+ scan.resize_destructive(count);
if (count == 16) {
std::memcpy(scan.data(), zig_zag_scan.data(), scan.size());
} else {
diff --git a/src/video_core/host_shaders/CMakeLists.txt b/src/video_core/host_shaders/CMakeLists.txt
index 2442c3c29..e61d9af80 100644
--- a/src/video_core/host_shaders/CMakeLists.txt
+++ b/src/video_core/host_shaders/CMakeLists.txt
@@ -33,6 +33,7 @@ set(SHADER_FILES
opengl_fidelityfx_fsr.frag
opengl_fidelityfx_fsr_easu.frag
opengl_fidelityfx_fsr_rcas.frag
+ opengl_lmem_warmup.comp
opengl_present.frag
opengl_present.vert
opengl_present_scaleforce.frag
diff --git a/src/video_core/host_shaders/opengl_lmem_warmup.comp b/src/video_core/host_shaders/opengl_lmem_warmup.comp
new file mode 100644
index 000000000..518268477
--- /dev/null
+++ b/src/video_core/host_shaders/opengl_lmem_warmup.comp
@@ -0,0 +1,47 @@
+// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+// This shader is a workaround for a quirk in NVIDIA OpenGL drivers
+// Shaders using local memory see a great performance benefit if a shader that was dispatched
+// before it had more local memory allocated.
+// This shader allocates the maximum local memory allowed on NVIDIA drivers to ensure that
+// subsequent shaders see the performance boost.
+
+// NOTE: This shader does no actual meaningful work and returns immediately,
+// it is simply a means to have the driver expect a shader using lots of local memory.
+
+#version 450
+
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+
+layout(location = 0) uniform uint uniform_data;
+
+layout(binding = 0, rgba8) uniform writeonly restrict image2DArray dest_image;
+
+#define MAX_LMEM_SIZE 4080 // Size chosen to avoid errors in Nvidia's GLSL compiler
+#define NUM_LMEM_CONSTANTS 1
+#define ARRAY_SIZE MAX_LMEM_SIZE - NUM_LMEM_CONSTANTS
+
+uint lmem_0[ARRAY_SIZE];
+const uvec4 constant_values[NUM_LMEM_CONSTANTS] = uvec4[](uvec4(0));
+
+void main() {
+ const uint global_id = gl_GlobalInvocationID.x;
+ if (global_id <= 128) {
+ // Since the shader is called with a dispatch of 1x1x1
+ // This should always be the case, and this shader will not actually execute
+ return;
+ }
+ for (uint t = 0; t < uniform_data; t++) {
+ const uint offset = (t * uniform_data);
+ lmem_0[offset] = t;
+ }
+ const uint offset = (gl_GlobalInvocationID.y * uniform_data + gl_GlobalInvocationID.x);
+ const uint value = lmem_0[offset];
+ const uint const_value = constant_values[offset / 4][offset % 4];
+ const uvec4 color = uvec4(value + const_value);
+
+ // A "side-effect" is needed so the variables don't get optimized out,
+ // but this should never execute so there should be no clobbering of previously bound state.
+ imageStore(dest_image, ivec3(gl_GlobalInvocationID), color);
+}
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp
index 7b2cde7a7..45141e488 100644
--- a/src/video_core/memory_manager.cpp
+++ b/src/video_core/memory_manager.cpp
@@ -111,7 +111,7 @@ GPUVAddr MemoryManager::PageTableOp(GPUVAddr gpu_addr, [[maybe_unused]] VAddr cp
[[maybe_unused]] const auto current_entry_type = GetEntry<false>(current_gpu_addr);
SetEntry<false>(current_gpu_addr, entry_type);
if (current_entry_type != entry_type) {
- rasterizer->ModifyGPUMemory(unique_identifier, gpu_addr, page_size);
+ rasterizer->ModifyGPUMemory(unique_identifier, current_gpu_addr, page_size);
}
if constexpr (entry_type == EntryType::Mapped) {
const VAddr current_cpu_addr = cpu_addr + offset;
@@ -134,7 +134,7 @@ GPUVAddr MemoryManager::BigPageTableOp(GPUVAddr gpu_addr, [[maybe_unused]] VAddr
[[maybe_unused]] const auto current_entry_type = GetEntry<true>(current_gpu_addr);
SetEntry<true>(current_gpu_addr, entry_type);
if (current_entry_type != entry_type) {
- rasterizer->ModifyGPUMemory(unique_identifier, gpu_addr, big_page_size);
+ rasterizer->ModifyGPUMemory(unique_identifier, current_gpu_addr, big_page_size);
}
if constexpr (entry_type == EntryType::Mapped) {
const VAddr current_cpu_addr = cpu_addr + offset;
@@ -587,7 +587,7 @@ void MemoryManager::InvalidateRegion(GPUVAddr gpu_addr, size_t size,
void MemoryManager::CopyBlock(GPUVAddr gpu_dest_addr, GPUVAddr gpu_src_addr, std::size_t size,
VideoCommon::CacheType which) {
- std::vector<u8> tmp_buffer(size);
+ tmp_buffer.resize_destructive(size);
ReadBlock(gpu_src_addr, tmp_buffer.data(), size, which);
// The output block must be flushed in case it has data modified from the GPU.
@@ -670,9 +670,9 @@ bool MemoryManager::IsFullyMappedRange(GPUVAddr gpu_addr, std::size_t size) cons
return result;
}
-std::vector<std::pair<GPUVAddr, std::size_t>> MemoryManager::GetSubmappedRange(
- GPUVAddr gpu_addr, std::size_t size) const {
- std::vector<std::pair<GPUVAddr, std::size_t>> result{};
+boost::container::small_vector<std::pair<GPUVAddr, std::size_t>, 32>
+MemoryManager::GetSubmappedRange(GPUVAddr gpu_addr, std::size_t size) const {
+ boost::container::small_vector<std::pair<GPUVAddr, std::size_t>, 32> result{};
GetSubmappedRangeImpl<true>(gpu_addr, size, result);
return result;
}
@@ -680,8 +680,9 @@ std::vector<std::pair<GPUVAddr, std::size_t>> MemoryManager::GetSubmappedRange(
template <bool is_gpu_address>
void MemoryManager::GetSubmappedRangeImpl(
GPUVAddr gpu_addr, std::size_t size,
- std::vector<std::pair<std::conditional_t<is_gpu_address, GPUVAddr, VAddr>, std::size_t>>&
- result) const {
+ boost::container::small_vector<
+ std::pair<std::conditional_t<is_gpu_address, GPUVAddr, VAddr>, std::size_t>, 32>& result)
+ const {
std::optional<std::pair<std::conditional_t<is_gpu_address, GPUVAddr, VAddr>, std::size_t>>
last_segment{};
std::optional<VAddr> old_page_addr{};
diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h
index 794535122..4202c26ff 100644
--- a/src/video_core/memory_manager.h
+++ b/src/video_core/memory_manager.h
@@ -8,10 +8,12 @@
#include <mutex>
#include <optional>
#include <vector>
+#include <boost/container/small_vector.hpp>
#include "common/common_types.h"
#include "common/multi_level_page_table.h"
#include "common/range_map.h"
+#include "common/scratch_buffer.h"
#include "common/virtual_buffer.h"
#include "video_core/cache_types.h"
#include "video_core/pte_kind.h"
@@ -107,8 +109,8 @@ public:
* if the region is continuous, a single pair will be returned. If it's unmapped, an empty
* vector will be returned;
*/
- std::vector<std::pair<GPUVAddr, std::size_t>> GetSubmappedRange(GPUVAddr gpu_addr,
- std::size_t size) const;
+ boost::container::small_vector<std::pair<GPUVAddr, std::size_t>, 32> GetSubmappedRange(
+ GPUVAddr gpu_addr, std::size_t size) const;
GPUVAddr Map(GPUVAddr gpu_addr, VAddr cpu_addr, std::size_t size,
PTEKind kind = PTEKind::INVALID, bool is_big_pages = true);
@@ -165,7 +167,8 @@ private:
template <bool is_gpu_address>
void GetSubmappedRangeImpl(
GPUVAddr gpu_addr, std::size_t size,
- std::vector<std::pair<std::conditional_t<is_gpu_address, GPUVAddr, VAddr>, std::size_t>>&
+ boost::container::small_vector<
+ std::pair<std::conditional_t<is_gpu_address, GPUVAddr, VAddr>, std::size_t>, 32>&
result) const;
Core::System& system;
@@ -215,8 +218,8 @@ private:
Common::VirtualBuffer<u32> big_page_table_cpu;
std::vector<u64> big_page_continuous;
- std::vector<std::pair<VAddr, std::size_t>> page_stash{};
- std::vector<std::pair<VAddr, std::size_t>> page_stash2{};
+ boost::container::small_vector<std::pair<VAddr, std::size_t>, 32> page_stash{};
+ boost::container::small_vector<std::pair<VAddr, std::size_t>, 32> page_stash2{};
mutable std::mutex guard;
@@ -226,6 +229,8 @@ private:
std::unique_ptr<VideoCommon::InvalidationAccumulator> accumulator;
static std::atomic<size_t> unique_identifier_generator;
+
+ Common::ScratchBuffer<u8> tmp_buffer;
};
} // namespace Tegra
diff --git a/src/video_core/renderer_opengl/gl_compute_pipeline.cpp b/src/video_core/renderer_opengl/gl_compute_pipeline.cpp
index 3151c0db8..f9ca55c36 100644
--- a/src/video_core/renderer_opengl/gl_compute_pipeline.cpp
+++ b/src/video_core/renderer_opengl/gl_compute_pipeline.cpp
@@ -63,6 +63,7 @@ ComputePipeline::ComputePipeline(const Device& device, TextureCache& texture_cac
writes_global_memory = !use_storage_buffers &&
std::ranges::any_of(info.storage_buffers_descriptors,
[](const auto& desc) { return desc.is_written; });
+ uses_local_memory = info.uses_local_memory;
if (force_context_flush) {
std::scoped_lock lock{built_mutex};
built_fence.Create();
diff --git a/src/video_core/renderer_opengl/gl_compute_pipeline.h b/src/video_core/renderer_opengl/gl_compute_pipeline.h
index 9bcc72b59..c26b4fa5e 100644
--- a/src/video_core/renderer_opengl/gl_compute_pipeline.h
+++ b/src/video_core/renderer_opengl/gl_compute_pipeline.h
@@ -59,6 +59,10 @@ public:
return writes_global_memory;
}
+ [[nodiscard]] bool UsesLocalMemory() const noexcept {
+ return uses_local_memory;
+ }
+
void SetEngine(Tegra::Engines::KeplerCompute* kepler_compute_,
Tegra::MemoryManager* gpu_memory_) {
kepler_compute = kepler_compute_;
@@ -84,6 +88,7 @@ private:
bool use_storage_buffers{};
bool writes_global_memory{};
+ bool uses_local_memory{};
std::mutex built_mutex;
std::condition_variable built_condvar;
diff --git a/src/video_core/renderer_opengl/gl_device.cpp b/src/video_core/renderer_opengl/gl_device.cpp
index 03d234f2f..33e63c17d 100644
--- a/src/video_core/renderer_opengl/gl_device.cpp
+++ b/src/video_core/renderer_opengl/gl_device.cpp
@@ -194,6 +194,7 @@ Device::Device(Core::Frontend::EmuWindow& emu_window) {
has_bool_ref_bug = true;
}
}
+ has_lmem_perf_bug = is_nvidia;
strict_context_required = emu_window.StrictContextRequired();
// Blocks AMD and Intel OpenGL drivers on Windows from using asynchronous shader compilation.
diff --git a/src/video_core/renderer_opengl/gl_device.h b/src/video_core/renderer_opengl/gl_device.h
index ad27264e5..a5a6bbbba 100644
--- a/src/video_core/renderer_opengl/gl_device.h
+++ b/src/video_core/renderer_opengl/gl_device.h
@@ -192,6 +192,10 @@ public:
return supports_conditional_barriers;
}
+ bool HasLmemPerfBug() const {
+ return has_lmem_perf_bug;
+ }
+
private:
static bool TestVariableAoffi();
static bool TestPreciseBug();
@@ -238,6 +242,7 @@ private:
bool can_report_memory{};
bool strict_context_required{};
bool supports_conditional_barriers{};
+ bool has_lmem_perf_bug{};
std::string vendor_name;
};
diff --git a/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp b/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
index c58f760b8..23a48c6fe 100644
--- a/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
+++ b/src/video_core/renderer_opengl/gl_graphics_pipeline.cpp
@@ -215,6 +215,7 @@ GraphicsPipeline::GraphicsPipeline(const Device& device, TextureCache& texture_c
writes_global_memory |= std::ranges::any_of(
info.storage_buffers_descriptors, [](const auto& desc) { return desc.is_written; });
+ uses_local_memory |= info.uses_local_memory;
}
ASSERT(num_textures <= MAX_TEXTURES);
ASSERT(num_images <= MAX_IMAGES);
diff --git a/src/video_core/renderer_opengl/gl_graphics_pipeline.h b/src/video_core/renderer_opengl/gl_graphics_pipeline.h
index 7bab3be0a..7b3d7eae8 100644
--- a/src/video_core/renderer_opengl/gl_graphics_pipeline.h
+++ b/src/video_core/renderer_opengl/gl_graphics_pipeline.h
@@ -98,6 +98,10 @@ public:
return writes_global_memory;
}
+ [[nodiscard]] bool UsesLocalMemory() const noexcept {
+ return uses_local_memory;
+ }
+
[[nodiscard]] bool IsBuilt() noexcept;
template <typename Spec>
@@ -146,6 +150,7 @@ private:
bool use_storage_buffers{};
bool writes_global_memory{};
+ bool uses_local_memory{};
static constexpr std::size_t XFB_ENTRY_STRIDE = 3;
GLsizei num_xfb_attribs{};
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp
index fc711c44a..edf527f2d 100644
--- a/src/video_core/renderer_opengl/gl_rasterizer.cpp
+++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp
@@ -222,6 +222,9 @@ void RasterizerOpenGL::PrepareDraw(bool is_indexed, Func&& draw_func) {
gpu.TickWork();
std::scoped_lock lock{buffer_cache.mutex, texture_cache.mutex};
+ if (pipeline->UsesLocalMemory()) {
+ program_manager.LocalMemoryWarmup();
+ }
pipeline->SetEngine(maxwell3d, gpu_memory);
pipeline->Configure(is_indexed);
@@ -371,6 +374,9 @@ void RasterizerOpenGL::DispatchCompute() {
if (!pipeline) {
return;
}
+ if (pipeline->UsesLocalMemory()) {
+ program_manager.LocalMemoryWarmup();
+ }
pipeline->SetEngine(kepler_compute, gpu_memory);
pipeline->Configure();
const auto& qmd{kepler_compute->launch_description};
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index 3f077311e..0329ed820 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -85,7 +85,9 @@ Shader::RuntimeInfo MakeRuntimeInfo(const GraphicsPipelineKey& key,
case Shader::Stage::VertexB:
case Shader::Stage::Geometry:
if (!use_assembly_shaders && key.xfb_enabled != 0) {
- info.xfb_varyings = VideoCommon::MakeTransformFeedbackVaryings(key.xfb_state);
+ auto [varyings, count] = VideoCommon::MakeTransformFeedbackVaryings(key.xfb_state);
+ info.xfb_varyings = varyings;
+ info.xfb_count = count;
}
break;
case Shader::Stage::TessellationEval:
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.cpp b/src/video_core/renderer_opengl/gl_shader_manager.cpp
index 98841ae65..03d4b9d06 100644
--- a/src/video_core/renderer_opengl/gl_shader_manager.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_manager.cpp
@@ -3,7 +3,9 @@
#include <glad/glad.h>
+#include "video_core/host_shaders/opengl_lmem_warmup_comp.h"
#include "video_core/renderer_opengl/gl_shader_manager.h"
+#include "video_core/renderer_opengl/gl_shader_util.h"
namespace OpenGL {
@@ -17,6 +19,10 @@ ProgramManager::ProgramManager(const Device& device) {
if (device.UseAssemblyShaders()) {
glEnable(GL_COMPUTE_PROGRAM_NV);
}
+ if (device.HasLmemPerfBug()) {
+ lmem_warmup_program =
+ CreateProgram(HostShaders::OPENGL_LMEM_WARMUP_COMP, GL_COMPUTE_SHADER);
+ }
}
void ProgramManager::BindComputeProgram(GLuint program) {
@@ -98,6 +104,13 @@ void ProgramManager::BindAssemblyPrograms(std::span<const OGLAssemblyProgram, NU
void ProgramManager::RestoreGuestCompute() {}
+void ProgramManager::LocalMemoryWarmup() {
+ if (lmem_warmup_program.handle != 0) {
+ BindComputeProgram(lmem_warmup_program.handle);
+ glDispatchCompute(1, 1, 1);
+ }
+}
+
void ProgramManager::BindPipeline() {
if (!is_pipeline_bound) {
is_pipeline_bound = true;
diff --git a/src/video_core/renderer_opengl/gl_shader_manager.h b/src/video_core/renderer_opengl/gl_shader_manager.h
index 07ffab77f..852d8c88e 100644
--- a/src/video_core/renderer_opengl/gl_shader_manager.h
+++ b/src/video_core/renderer_opengl/gl_shader_manager.h
@@ -30,6 +30,8 @@ public:
void RestoreGuestCompute();
+ void LocalMemoryWarmup();
+
private:
void BindPipeline();
@@ -44,6 +46,7 @@ private:
u32 current_stage_mask = 0;
std::array<GLuint, NUM_STAGES> current_programs{};
GLuint current_assembly_compute_program = 0;
+ OGLProgram lmem_warmup_program;
};
} // namespace OpenGL
diff --git a/src/video_core/renderer_vulkan/blit_image.cpp b/src/video_core/renderer_vulkan/blit_image.cpp
index cf2964a3f..28d4b15a0 100644
--- a/src/video_core/renderer_vulkan/blit_image.cpp
+++ b/src/video_core/renderer_vulkan/blit_image.cpp
@@ -495,6 +495,9 @@ void BlitImageHelper::BlitDepthStencil(const Framebuffer* dst_framebuffer,
const Region2D& dst_region, const Region2D& src_region,
Tegra::Engines::Fermi2D::Filter filter,
Tegra::Engines::Fermi2D::Operation operation) {
+ if (!device.IsExtShaderStencilExportSupported()) {
+ return;
+ }
ASSERT(filter == Tegra::Engines::Fermi2D::Filter::Point);
ASSERT(operation == Tegra::Engines::Fermi2D::Operation::SrcCopy);
const BlitImagePipelineKey key{
diff --git a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp
index 9a0b10568..a8540339d 100644
--- a/src/video_core/renderer_vulkan/maxwell_to_vk.cpp
+++ b/src/video_core/renderer_vulkan/maxwell_to_vk.cpp
@@ -259,6 +259,26 @@ FormatInfo SurfaceFormat(const Device& device, FormatType format_type, bool with
break;
}
}
+ // Transcode on hardware that doesn't support BCn natively
+ if (!device.IsOptimalBcnSupported() && VideoCore::Surface::IsPixelFormatBCn(pixel_format)) {
+ const bool is_srgb = with_srgb && VideoCore::Surface::IsPixelFormatSRGB(pixel_format);
+ if (pixel_format == PixelFormat::BC4_SNORM) {
+ tuple.format = VK_FORMAT_R8_SNORM;
+ } else if (pixel_format == PixelFormat::BC4_UNORM) {
+ tuple.format = VK_FORMAT_R8_UNORM;
+ } else if (pixel_format == PixelFormat::BC5_SNORM) {
+ tuple.format = VK_FORMAT_R8G8_SNORM;
+ } else if (pixel_format == PixelFormat::BC5_UNORM) {
+ tuple.format = VK_FORMAT_R8G8_UNORM;
+ } else if (pixel_format == PixelFormat::BC6H_SFLOAT ||
+ pixel_format == PixelFormat::BC6H_UFLOAT) {
+ tuple.format = VK_FORMAT_R16G16B16A16_SFLOAT;
+ } else if (is_srgb) {
+ tuple.format = VK_FORMAT_A8B8G8R8_SRGB_PACK32;
+ } else {
+ tuple.format = VK_FORMAT_A8B8G8R8_UNORM_PACK32;
+ }
+ }
const bool attachable = (tuple.usage & Attachable) != 0;
const bool storage = (tuple.usage & Storage) != 0;
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index 77128c6e2..454bb66a4 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -12,6 +12,7 @@
#include <fmt/format.h>
#include "common/logging/log.h"
+#include "common/polyfill_ranges.h"
#include "common/scope_exit.h"
#include "common/settings.h"
#include "common/telemetry.h"
@@ -65,6 +66,21 @@ std::string BuildCommaSeparatedExtensions(
return fmt::format("{}", fmt::join(available_extensions, ","));
}
+DebugCallback MakeDebugCallback(const vk::Instance& instance, const vk::InstanceDispatch& dld) {
+ if (!Settings::values.renderer_debug) {
+ return DebugCallback{};
+ }
+ const std::optional properties = vk::EnumerateInstanceExtensionProperties(dld);
+ const auto it = std::ranges::find_if(*properties, [](const auto& prop) {
+ return std::strcmp(VK_EXT_DEBUG_UTILS_EXTENSION_NAME, prop.extensionName) == 0;
+ });
+ if (it != properties->end()) {
+ return CreateDebugUtilsCallback(instance);
+ } else {
+ return CreateDebugReportCallback(instance);
+ }
+}
+
} // Anonymous namespace
Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld,
@@ -87,10 +103,10 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
cpu_memory(cpu_memory_), gpu(gpu_), library(OpenLibrary(context.get())),
instance(CreateInstance(*library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
Settings::values.renderer_debug.GetValue())),
- debug_callback(Settings::values.renderer_debug ? CreateDebugCallback(instance) : nullptr),
+ debug_callback(MakeDebugCallback(instance, dld)),
surface(CreateSurface(instance, render_window.GetWindowInfo())),
- device(CreateDevice(instance, dld, *surface)), memory_allocator(device, false),
- state_tracker(), scheduler(device, state_tracker),
+ device(CreateDevice(instance, dld, *surface)), memory_allocator(device), state_tracker(),
+ scheduler(device, state_tracker),
swapchain(*surface, device, scheduler, render_window.GetFramebufferLayout().width,
render_window.GetFramebufferLayout().height, false),
present_manager(instance, render_window, device, memory_allocator, scheduler, swapchain,
@@ -173,7 +189,7 @@ void Vulkan::RendererVulkan::RenderScreenshot(const Tegra::FramebufferConfig& fr
return;
}
const Layout::FramebufferLayout layout{renderer_settings.screenshot_framebuffer_layout};
- vk::Image staging_image = device.GetLogical().CreateImage(VkImageCreateInfo{
+ vk::Image staging_image = memory_allocator.CreateImage(VkImageCreateInfo{
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.pNext = nullptr,
.flags = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
@@ -196,7 +212,6 @@ void Vulkan::RendererVulkan::RenderScreenshot(const Tegra::FramebufferConfig& fr
.pQueueFamilyIndices = nullptr,
.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED,
});
- const auto image_commit = memory_allocator.Commit(staging_image, MemoryUsage::DeviceLocal);
const vk::ImageView dst_view = device.GetLogical().CreateImageView(VkImageViewCreateInfo{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
@@ -234,8 +249,8 @@ void Vulkan::RendererVulkan::RenderScreenshot(const Tegra::FramebufferConfig& fr
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
};
- const vk::Buffer dst_buffer = device.GetLogical().CreateBuffer(dst_buffer_info);
- MemoryCommit dst_buffer_memory = memory_allocator.Commit(dst_buffer, MemoryUsage::Download);
+ const vk::Buffer dst_buffer =
+ memory_allocator.CreateBuffer(dst_buffer_info, MemoryUsage::Download);
scheduler.RequestOutsideRenderPassOperationContext();
scheduler.Record([&](vk::CommandBuffer cmdbuf) {
@@ -309,8 +324,9 @@ void Vulkan::RendererVulkan::RenderScreenshot(const Tegra::FramebufferConfig& fr
scheduler.Finish();
// Copy backing image data to the QImage screenshot buffer
- const auto dst_memory_map = dst_buffer_memory.Map();
- std::memcpy(renderer_settings.screenshot_bits, dst_memory_map.data(), dst_memory_map.size());
+ dst_buffer.Invalidate();
+ std::memcpy(renderer_settings.screenshot_bits, dst_buffer.Mapped().data(),
+ dst_buffer.Mapped().size());
renderer_settings.screenshot_complete_callback(false);
renderer_settings.screenshot_requested = false;
}
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h
index b2e8cbd1b..ca22c0baa 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.h
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.h
@@ -5,6 +5,7 @@
#include <memory>
#include <string>
+#include <variant>
#include "common/dynamic_library.h"
#include "video_core/renderer_base.h"
@@ -33,6 +34,8 @@ class GPU;
namespace Vulkan {
+using DebugCallback = std::variant<vk::DebugUtilsMessenger, vk::DebugReportCallback>;
+
Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld,
VkSurfaceKHR surface);
@@ -71,7 +74,7 @@ private:
vk::InstanceDispatch dld;
vk::Instance instance;
- vk::DebugUtilsMessenger debug_callback;
+ DebugCallback debug_callback;
vk::SurfaceKHR surface;
ScreenInfo screen_info;
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.cpp b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
index acb143fc7..ad3b29f0e 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.cpp
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.cpp
@@ -162,7 +162,7 @@ void BlitScreen::Draw(const Tegra::FramebufferConfig& framebuffer,
SetUniformData(data, layout);
SetVertexData(data, framebuffer, layout);
- const std::span<u8> mapped_span = buffer_commit.Map();
+ const std::span<u8> mapped_span = buffer.Mapped();
std::memcpy(mapped_span.data(), &data, sizeof(data));
if (!use_accelerated) {
@@ -1071,14 +1071,9 @@ void BlitScreen::ReleaseRawImages() {
scheduler.Wait(tick);
}
raw_images.clear();
- raw_buffer_commits.clear();
-
aa_image_view.reset();
aa_image.reset();
- aa_commit = MemoryCommit{};
-
buffer.reset();
- buffer_commit = MemoryCommit{};
}
void BlitScreen::CreateStagingBuffer(const Tegra::FramebufferConfig& framebuffer) {
@@ -1094,20 +1089,18 @@ void BlitScreen::CreateStagingBuffer(const Tegra::FramebufferConfig& framebuffer
.pQueueFamilyIndices = nullptr,
};
- buffer = device.GetLogical().CreateBuffer(ci);
- buffer_commit = memory_allocator.Commit(buffer, MemoryUsage::Upload);
+ buffer = memory_allocator.CreateBuffer(ci, MemoryUsage::Upload);
}
void BlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) {
raw_images.resize(image_count);
raw_image_views.resize(image_count);
- raw_buffer_commits.resize(image_count);
const auto create_image = [&](bool used_on_framebuffer = false, u32 up_scale = 1,
u32 down_shift = 0) {
u32 extra_usages = used_on_framebuffer ? VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
: VK_IMAGE_USAGE_TRANSFER_DST_BIT;
- return device.GetLogical().CreateImage(VkImageCreateInfo{
+ return memory_allocator.CreateImage(VkImageCreateInfo{
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -1130,9 +1123,6 @@ void BlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) {
.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED,
});
};
- const auto create_commit = [&](vk::Image& image) {
- return memory_allocator.Commit(image, MemoryUsage::DeviceLocal);
- };
const auto create_image_view = [&](vk::Image& image, bool used_on_framebuffer = false) {
return device.GetLogical().CreateImageView(VkImageViewCreateInfo{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
@@ -1161,7 +1151,6 @@ void BlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) {
for (size_t i = 0; i < image_count; ++i) {
raw_images[i] = create_image();
- raw_buffer_commits[i] = create_commit(raw_images[i]);
raw_image_views[i] = create_image_view(raw_images[i]);
}
@@ -1169,7 +1158,6 @@ void BlitScreen::CreateRawImages(const Tegra::FramebufferConfig& framebuffer) {
const u32 up_scale = Settings::values.resolution_info.up_scale;
const u32 down_shift = Settings::values.resolution_info.down_shift;
aa_image = create_image(true, up_scale, down_shift);
- aa_commit = create_commit(aa_image);
aa_image_view = create_image_view(aa_image, true);
VkExtent2D size{
.width = (up_scale * framebuffer.width) >> down_shift,
diff --git a/src/video_core/renderer_vulkan/vk_blit_screen.h b/src/video_core/renderer_vulkan/vk_blit_screen.h
index 68ec20253..8365b5668 100644
--- a/src/video_core/renderer_vulkan/vk_blit_screen.h
+++ b/src/video_core/renderer_vulkan/vk_blit_screen.h
@@ -142,13 +142,11 @@ private:
vk::Sampler sampler;
vk::Buffer buffer;
- MemoryCommit buffer_commit;
std::vector<u64> resource_ticks;
std::vector<vk::Image> raw_images;
std::vector<vk::ImageView> raw_image_views;
- std::vector<MemoryCommit> raw_buffer_commits;
vk::DescriptorPool aa_descriptor_pool;
vk::DescriptorSetLayout aa_descriptor_set_layout;
@@ -159,7 +157,6 @@ private:
vk::DescriptorSets aa_descriptor_sets;
vk::Image aa_image;
vk::ImageView aa_image_view;
- MemoryCommit aa_commit;
u32 raw_width = 0;
u32 raw_height = 0;
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp
index e30fcb1ed..b72f95235 100644
--- a/src/video_core/renderer_vulkan/vk_buffer_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_buffer_cache.cpp
@@ -50,7 +50,7 @@ size_t BytesPerIndex(VkIndexType index_type) {
}
}
-vk::Buffer CreateBuffer(const Device& device, u64 size) {
+vk::Buffer CreateBuffer(const Device& device, const MemoryAllocator& memory_allocator, u64 size) {
VkBufferUsageFlags flags =
VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT |
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT |
@@ -60,7 +60,7 @@ vk::Buffer CreateBuffer(const Device& device, u64 size) {
if (device.IsExtTransformFeedbackSupported()) {
flags |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT;
}
- return device.GetLogical().CreateBuffer({
+ const VkBufferCreateInfo buffer_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -69,7 +69,8 @@ vk::Buffer CreateBuffer(const Device& device, u64 size) {
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
+ };
+ return memory_allocator.CreateBuffer(buffer_ci, MemoryUsage::DeviceLocal);
}
} // Anonymous namespace
@@ -79,8 +80,8 @@ Buffer::Buffer(BufferCacheRuntime&, VideoCommon::NullBufferParams null_params)
Buffer::Buffer(BufferCacheRuntime& runtime, VideoCore::RasterizerInterface& rasterizer_,
VAddr cpu_addr_, u64 size_bytes_)
: VideoCommon::BufferBase<VideoCore::RasterizerInterface>(rasterizer_, cpu_addr_, size_bytes_),
- device{&runtime.device}, buffer{CreateBuffer(*device, SizeBytes())},
- commit{runtime.memory_allocator.Commit(buffer, MemoryUsage::DeviceLocal)} {
+ device{&runtime.device}, buffer{
+ CreateBuffer(*device, runtime.memory_allocator, SizeBytes())} {
if (runtime.device.HasDebuggingToolAttached()) {
buffer.SetObjectNameEXT(fmt::format("Buffer 0x{:x}", CpuAddr()).c_str());
}
@@ -138,7 +139,7 @@ public:
const u32 num_first_offset_copies = 4;
const size_t bytes_per_index = BytesPerIndex(index_type);
const size_t size_bytes = num_triangle_indices * bytes_per_index * num_first_offset_copies;
- buffer = device.GetLogical().CreateBuffer(VkBufferCreateInfo{
+ const VkBufferCreateInfo buffer_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -147,14 +148,21 @@ public:
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
+ };
+ buffer = memory_allocator.CreateBuffer(buffer_ci, MemoryUsage::DeviceLocal);
if (device.HasDebuggingToolAttached()) {
buffer.SetObjectNameEXT("Quad LUT");
}
- memory_commit = memory_allocator.Commit(buffer, MemoryUsage::DeviceLocal);
- const StagingBufferRef staging = staging_pool.Request(size_bytes, MemoryUsage::Upload);
- u8* staging_data = staging.mapped_span.data();
+ const bool host_visible = buffer.IsHostVisible();
+ const StagingBufferRef staging = [&] {
+ if (host_visible) {
+ return StagingBufferRef{};
+ }
+ return staging_pool.Request(size_bytes, MemoryUsage::Upload);
+ }();
+
+ u8* staging_data = host_visible ? buffer.Mapped().data() : staging.mapped_span.data();
const size_t quad_size = bytes_per_index * 6;
for (u32 first = 0; first < num_first_offset_copies; ++first) {
@@ -164,29 +172,33 @@ public:
}
}
- scheduler.RequestOutsideRenderPassOperationContext();
- scheduler.Record([src_buffer = staging.buffer, src_offset = staging.offset,
- dst_buffer = *buffer, size_bytes](vk::CommandBuffer cmdbuf) {
- const VkBufferCopy copy{
- .srcOffset = src_offset,
- .dstOffset = 0,
- .size = size_bytes,
- };
- const VkBufferMemoryBarrier write_barrier{
- .sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
- .pNext = nullptr,
- .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
- .dstAccessMask = VK_ACCESS_INDEX_READ_BIT,
- .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
- .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
- .buffer = dst_buffer,
- .offset = 0,
- .size = size_bytes,
- };
- cmdbuf.CopyBuffer(src_buffer, dst_buffer, copy);
- cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT,
- VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, 0, write_barrier);
- });
+ if (!host_visible) {
+ scheduler.RequestOutsideRenderPassOperationContext();
+ scheduler.Record([src_buffer = staging.buffer, src_offset = staging.offset,
+ dst_buffer = *buffer, size_bytes](vk::CommandBuffer cmdbuf) {
+ const VkBufferCopy copy{
+ .srcOffset = src_offset,
+ .dstOffset = 0,
+ .size = size_bytes,
+ };
+ const VkBufferMemoryBarrier write_barrier{
+ .sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER,
+ .pNext = nullptr,
+ .srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
+ .dstAccessMask = VK_ACCESS_INDEX_READ_BIT,
+ .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+ .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED,
+ .buffer = dst_buffer,
+ .offset = 0,
+ .size = size_bytes,
+ };
+ cmdbuf.CopyBuffer(src_buffer, dst_buffer, copy);
+ cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_TRANSFER_BIT,
+ VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, 0, write_barrier);
+ });
+ } else {
+ buffer.Flush();
+ }
}
void BindBuffer(u32 first) {
@@ -361,7 +373,7 @@ void BufferCacheRuntime::CopyBuffer(VkBuffer dst_buffer, VkBuffer src_buffer,
.dstAccessMask = VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
};
// Measuring a popular game, this number never exceeds the specified size once data is warmed up
- boost::container::small_vector<VkBufferCopy, 3> vk_copies(copies.size());
+ boost::container::small_vector<VkBufferCopy, 8> vk_copies(copies.size());
std::ranges::transform(copies, vk_copies.begin(), MakeBufferCopy);
scheduler.RequestOutsideRenderPassOperationContext();
scheduler.Record([src_buffer, dst_buffer, vk_copies, barrier](vk::CommandBuffer cmdbuf) {
@@ -578,7 +590,8 @@ void BufferCacheRuntime::ReserveNullBuffer() {
.pNext = nullptr,
.flags = 0,
.size = 4,
- .usage = VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT,
+ .usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT |
+ VK_BUFFER_USAGE_TRANSFER_DST_BIT,
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
@@ -587,11 +600,10 @@ void BufferCacheRuntime::ReserveNullBuffer() {
create_info.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT;
}
create_info.usage |= VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT;
- null_buffer = device.GetLogical().CreateBuffer(create_info);
+ null_buffer = memory_allocator.CreateBuffer(create_info, MemoryUsage::DeviceLocal);
if (device.HasDebuggingToolAttached()) {
null_buffer.SetObjectNameEXT("Null buffer");
}
- null_buffer_commit = memory_allocator.Commit(null_buffer, MemoryUsage::DeviceLocal);
scheduler.RequestOutsideRenderPassOperationContext();
scheduler.Record([buffer = *null_buffer](vk::CommandBuffer cmdbuf) {
diff --git a/src/video_core/renderer_vulkan/vk_buffer_cache.h b/src/video_core/renderer_vulkan/vk_buffer_cache.h
index cdeef8846..95446c732 100644
--- a/src/video_core/renderer_vulkan/vk_buffer_cache.h
+++ b/src/video_core/renderer_vulkan/vk_buffer_cache.h
@@ -48,7 +48,6 @@ private:
const Device* device{};
vk::Buffer buffer;
- MemoryCommit commit;
std::vector<BufferView> views;
};
@@ -142,7 +141,6 @@ private:
std::shared_ptr<QuadStripIndexBuffer> quad_strip_index_buffer;
vk::Buffer null_buffer;
- MemoryCommit null_buffer_commit;
std::unique_ptr<Uint8Pass> uint8_pass;
QuadIndexedPass quad_index_pass;
diff --git a/src/video_core/renderer_vulkan/vk_fsr.cpp b/src/video_core/renderer_vulkan/vk_fsr.cpp
index df972cd54..9bcdca2fb 100644
--- a/src/video_core/renderer_vulkan/vk_fsr.cpp
+++ b/src/video_core/renderer_vulkan/vk_fsr.cpp
@@ -205,10 +205,9 @@ void FSR::CreateDescriptorSets() {
void FSR::CreateImages() {
images.resize(image_count * 2);
image_views.resize(image_count * 2);
- buffer_commits.resize(image_count * 2);
for (size_t i = 0; i < image_count * 2; ++i) {
- images[i] = device.GetLogical().CreateImage(VkImageCreateInfo{
+ images[i] = memory_allocator.CreateImage(VkImageCreateInfo{
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -231,7 +230,6 @@ void FSR::CreateImages() {
.pQueueFamilyIndices = nullptr,
.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED,
});
- buffer_commits[i] = memory_allocator.Commit(images[i], MemoryUsage::DeviceLocal);
image_views[i] = device.GetLogical().CreateImageView(VkImageViewCreateInfo{
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
.pNext = nullptr,
diff --git a/src/video_core/renderer_vulkan/vk_fsr.h b/src/video_core/renderer_vulkan/vk_fsr.h
index 5d872861f..8bb9fc23a 100644
--- a/src/video_core/renderer_vulkan/vk_fsr.h
+++ b/src/video_core/renderer_vulkan/vk_fsr.h
@@ -47,7 +47,6 @@ private:
vk::Sampler sampler;
std::vector<vk::Image> images;
std::vector<vk::ImageView> image_views;
- std::vector<MemoryCommit> buffer_commits;
};
} // namespace Vulkan
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index c1595642e..ad35cacac 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -652,13 +652,14 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
.pNext = nullptr,
.negativeOneToOne = key.state.ndc_minus_one_to_one.Value() != 0 ? VK_TRUE : VK_FALSE,
};
+ const u32 num_viewports = std::min<u32>(device.GetMaxViewports(), Maxwell::NumViewports);
VkPipelineViewportStateCreateInfo viewport_ci{
.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
- .viewportCount = Maxwell::NumViewports,
+ .viewportCount = num_viewports,
.pViewports = nullptr,
- .scissorCount = Maxwell::NumViewports,
+ .scissorCount = num_viewports,
.pScissors = nullptr,
};
if (device.IsNvViewportSwizzleSupported()) {
diff --git a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
index 5eeda08d2..6b288b994 100644
--- a/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
+++ b/src/video_core/renderer_vulkan/vk_master_semaphore.cpp
@@ -75,15 +75,9 @@ void MasterSemaphore::Refresh() {
void MasterSemaphore::Wait(u64 tick) {
if (!semaphore) {
- // If we don't support timeline semaphores, use an atomic wait
- while (true) {
- u64 current_value = gpu_tick.load(std::memory_order_relaxed);
- if (current_value >= tick) {
- return;
- }
- gpu_tick.wait(current_value);
- }
-
+ // If we don't support timeline semaphores, wait for the value normally
+ std::unique_lock lk{free_mutex};
+ free_cv.wait(lk, [&] { return gpu_tick.load(std::memory_order_relaxed) >= tick; });
return;
}
@@ -198,11 +192,13 @@ void MasterSemaphore::WaitThread(std::stop_token token) {
fence.Wait();
fence.Reset();
- gpu_tick.store(host_tick);
- gpu_tick.notify_all();
- std::scoped_lock lock{free_mutex};
- free_queue.push_front(std::move(fence));
+ {
+ std::scoped_lock lock{free_mutex};
+ free_queue.push_front(std::move(fence));
+ gpu_tick.store(host_tick);
+ }
+ free_cv.notify_one();
}
}
diff --git a/src/video_core/renderer_vulkan/vk_master_semaphore.h b/src/video_core/renderer_vulkan/vk_master_semaphore.h
index 1e7c90215..3f599d7bd 100644
--- a/src/video_core/renderer_vulkan/vk_master_semaphore.h
+++ b/src/video_core/renderer_vulkan/vk_master_semaphore.h
@@ -72,6 +72,7 @@ private:
std::atomic<u64> current_tick{1}; ///< Current logical tick.
std::mutex wait_mutex;
std::mutex free_mutex;
+ std::condition_variable free_cv;
std::condition_variable_any wait_cv;
std::queue<Waitable> wait_queue; ///< Queue for the fences to be waited on by the wait thread.
std::deque<vk::Fence> free_queue; ///< Holds available fences for submission.
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index 18e040a1b..d600c4e61 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -167,7 +167,10 @@ Shader::RuntimeInfo MakeRuntimeInfo(std::span<const Shader::IR::Program> program
info.fixed_state_point_size = point_size;
}
if (key.state.xfb_enabled) {
- info.xfb_varyings = VideoCommon::MakeTransformFeedbackVaryings(key.state.xfb_state);
+ auto [varyings, count] =
+ VideoCommon::MakeTransformFeedbackVaryings(key.state.xfb_state);
+ info.xfb_varyings = varyings;
+ info.xfb_count = count;
}
info.convert_depth_mode = gl_ndc;
}
@@ -214,7 +217,10 @@ Shader::RuntimeInfo MakeRuntimeInfo(std::span<const Shader::IR::Program> program
info.fixed_state_point_size = point_size;
}
if (key.state.xfb_enabled != 0) {
- info.xfb_varyings = VideoCommon::MakeTransformFeedbackVaryings(key.state.xfb_state);
+ auto [varyings, count] =
+ VideoCommon::MakeTransformFeedbackVaryings(key.state.xfb_state);
+ info.xfb_varyings = varyings;
+ info.xfb_count = count;
}
info.convert_depth_mode = gl_ndc;
break;
@@ -303,7 +309,7 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, const Device& device
.support_int16 = device.IsShaderInt16Supported(),
.support_int64 = device.IsShaderInt64Supported(),
.support_vertex_instance_id = false,
- .support_float_controls = true,
+ .support_float_controls = device.IsKhrShaderFloatControlsSupported(),
.support_separate_denorm_behavior =
float_control.denormBehaviorIndependence == VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
.support_separate_rounding_mode =
@@ -319,12 +325,13 @@ PipelineCache::PipelineCache(RasterizerVulkan& rasterizer_, const Device& device
.support_fp64_signed_zero_nan_preserve =
float_control.shaderSignedZeroInfNanPreserveFloat64 != VK_FALSE,
.support_explicit_workgroup_layout = device.IsKhrWorkgroupMemoryExplicitLayoutSupported(),
- .support_vote = true,
+ .support_vote = device.IsSubgroupFeatureSupported(VK_SUBGROUP_FEATURE_VOTE_BIT),
.support_viewport_index_layer_non_geometry =
device.IsExtShaderViewportIndexLayerSupported(),
.support_viewport_mask = device.IsNvViewportArray2Supported(),
.support_typeless_image_loads = device.IsFormatlessImageLoadSupported(),
- .support_demote_to_helper_invocation = true,
+ .support_demote_to_helper_invocation =
+ device.IsExtShaderDemoteToHelperInvocationSupported(),
.support_int64_atomics = device.IsExtShaderAtomicInt64Supported(),
.support_derivative_control = true,
.support_geometry_shader_passthrough = device.IsNvGeometryShaderPassthroughSupported(),
@@ -705,10 +712,7 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
ShaderPools& pools, const ComputePipelineCacheKey& key, Shader::Environment& env,
PipelineStatistics* statistics, bool build_in_parallel) try {
- // TODO: Remove this when Intel fixes their shader compiler.
- // https://github.com/IGCIT/Intel-GPU-Community-Issue-Tracker-IGCIT/issues/159
- if (device.GetDriverID() == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS &&
- !Settings::values.enable_compute_pipelines.GetValue()) {
+ if (device.HasBrokenCompute()) {
LOG_ERROR(Render_Vulkan, "Skipping 0x{:016x}", key.Hash());
return nullptr;
}
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.cpp b/src/video_core/renderer_vulkan/vk_present_manager.cpp
index 10ace0420..d681bd22a 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_present_manager.cpp
@@ -181,7 +181,7 @@ void PresentManager::RecreateFrame(Frame* frame, u32 width, u32 height, bool is_
frame->height = height;
frame->is_srgb = is_srgb;
- frame->image = dld.CreateImage({
+ frame->image = memory_allocator.CreateImage({
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.pNext = nullptr,
.flags = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT,
@@ -204,8 +204,6 @@ void PresentManager::RecreateFrame(Frame* frame, u32 width, u32 height, bool is_
.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED,
});
- frame->image_commit = memory_allocator.Commit(frame->image, MemoryUsage::DeviceLocal);
-
frame->image_view = dld.CreateImageView({
.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,
.pNext = nullptr,
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.h b/src/video_core/renderer_vulkan/vk_present_manager.h
index 4ac2e2395..83e859416 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.h
+++ b/src/video_core/renderer_vulkan/vk_present_manager.h
@@ -29,7 +29,6 @@ struct Frame {
vk::Image image;
vk::ImageView image_view;
vk::Framebuffer framebuffer;
- MemoryCommit image_commit;
vk::CommandBuffer cmdbuf;
vk::Semaphore render_ready;
vk::Fence present_done;
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
index 84e3a30cc..f7c0d939a 100644
--- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp
+++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp
@@ -315,7 +315,14 @@ void RasterizerVulkan::Clear(u32 layer_count) {
FlushWork();
gpu_memory->FlushCaching();
+#if ANDROID
+ if (Settings::IsGPULevelHigh()) {
+ // This is problematic on Android, disable on GPU Normal.
+ query_cache.UpdateCounters();
+ }
+#else
query_cache.UpdateCounters();
+#endif
auto& regs = maxwell3d->regs;
const bool use_color = regs.clear_surface.R || regs.clear_surface.G || regs.clear_surface.B ||
@@ -925,7 +932,7 @@ void RasterizerVulkan::UpdateViewportsState(Tegra::Engines::Maxwell3D::Regs& reg
}
const bool is_rescaling{texture_cache.IsRescaling()};
const float scale = is_rescaling ? Settings::values.resolution_info.up_factor : 1.0f;
- const std::array viewports{
+ const std::array viewport_list{
GetViewportState(device, regs, 0, scale), GetViewportState(device, regs, 1, scale),
GetViewportState(device, regs, 2, scale), GetViewportState(device, regs, 3, scale),
GetViewportState(device, regs, 4, scale), GetViewportState(device, regs, 5, scale),
@@ -935,7 +942,11 @@ void RasterizerVulkan::UpdateViewportsState(Tegra::Engines::Maxwell3D::Regs& reg
GetViewportState(device, regs, 12, scale), GetViewportState(device, regs, 13, scale),
GetViewportState(device, regs, 14, scale), GetViewportState(device, regs, 15, scale),
};
- scheduler.Record([viewports](vk::CommandBuffer cmdbuf) { cmdbuf.SetViewport(0, viewports); });
+ scheduler.Record([this, viewport_list](vk::CommandBuffer cmdbuf) {
+ const u32 num_viewports = std::min<u32>(device.GetMaxViewports(), Maxwell::NumViewports);
+ const vk::Span<VkViewport> viewports(viewport_list.data(), num_viewports);
+ cmdbuf.SetViewport(0, viewports);
+ });
}
void RasterizerVulkan::UpdateScissorsState(Tegra::Engines::Maxwell3D::Regs& regs) {
@@ -948,7 +959,7 @@ void RasterizerVulkan::UpdateScissorsState(Tegra::Engines::Maxwell3D::Regs& regs
up_scale = Settings::values.resolution_info.up_scale;
down_shift = Settings::values.resolution_info.down_shift;
}
- const std::array scissors{
+ const std::array scissor_list{
GetScissorState(regs, 0, up_scale, down_shift),
GetScissorState(regs, 1, up_scale, down_shift),
GetScissorState(regs, 2, up_scale, down_shift),
@@ -966,7 +977,11 @@ void RasterizerVulkan::UpdateScissorsState(Tegra::Engines::Maxwell3D::Regs& regs
GetScissorState(regs, 14, up_scale, down_shift),
GetScissorState(regs, 15, up_scale, down_shift),
};
- scheduler.Record([scissors](vk::CommandBuffer cmdbuf) { cmdbuf.SetScissor(0, scissors); });
+ scheduler.Record([this, scissor_list](vk::CommandBuffer cmdbuf) {
+ const u32 num_scissors = std::min<u32>(device.GetMaxViewports(), Maxwell::NumViewports);
+ const vk::Span<VkRect2D> scissors(scissor_list.data(), num_scissors);
+ cmdbuf.SetScissor(0, scissors);
+ });
}
void RasterizerVulkan::UpdateDepthBias(Tegra::Engines::Maxwell3D::Regs& regs) {
diff --git a/src/video_core/renderer_vulkan/vk_smaa.cpp b/src/video_core/renderer_vulkan/vk_smaa.cpp
index f8735189d..5efd7d66e 100644
--- a/src/video_core/renderer_vulkan/vk_smaa.cpp
+++ b/src/video_core/renderer_vulkan/vk_smaa.cpp
@@ -25,9 +25,7 @@ namespace {
#define ARRAY_TO_SPAN(a) std::span(a, (sizeof(a) / sizeof(a[0])))
-std::pair<vk::Image, MemoryCommit> CreateWrappedImage(const Device& device,
- MemoryAllocator& allocator,
- VkExtent2D dimensions, VkFormat format) {
+vk::Image CreateWrappedImage(MemoryAllocator& allocator, VkExtent2D dimensions, VkFormat format) {
const VkImageCreateInfo image_ci{
.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO,
.pNext = nullptr,
@@ -46,11 +44,7 @@ std::pair<vk::Image, MemoryCommit> CreateWrappedImage(const Device& device,
.pQueueFamilyIndices = nullptr,
.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED,
};
-
- auto image = device.GetLogical().CreateImage(image_ci);
- auto commit = allocator.Commit(image, Vulkan::MemoryUsage::DeviceLocal);
-
- return std::make_pair(std::move(image), std::move(commit));
+ return allocator.CreateImage(image_ci);
}
void TransitionImageLayout(vk::CommandBuffer& cmdbuf, VkImage image, VkImageLayout target_layout,
@@ -82,7 +76,7 @@ void TransitionImageLayout(vk::CommandBuffer& cmdbuf, VkImage image, VkImageLayo
void UploadImage(const Device& device, MemoryAllocator& allocator, Scheduler& scheduler,
vk::Image& image, VkExtent2D dimensions, VkFormat format,
std::span<const u8> initial_contents = {}) {
- auto upload_buffer = device.GetLogical().CreateBuffer(VkBufferCreateInfo{
+ const VkBufferCreateInfo upload_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -91,9 +85,10 @@ void UploadImage(const Device& device, MemoryAllocator& allocator, Scheduler& sc
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
- auto upload_commit = allocator.Commit(upload_buffer, MemoryUsage::Upload);
- std::ranges::copy(initial_contents, upload_commit.Map().begin());
+ };
+ auto upload_buffer = allocator.CreateBuffer(upload_ci, MemoryUsage::Upload);
+ std::ranges::copy(initial_contents, upload_buffer.Mapped().begin());
+ upload_buffer.Flush();
const std::array<VkBufferImageCopy, 1> regions{{{
.bufferOffset = 0,
@@ -117,9 +112,6 @@ void UploadImage(const Device& device, MemoryAllocator& allocator, Scheduler& sc
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL);
});
scheduler.Finish();
-
- // This should go out of scope before the commit
- auto upload_buffer2 = std::move(upload_buffer);
}
vk::ImageView CreateWrappedImageView(const Device& device, vk::Image& image, VkFormat format) {
@@ -531,10 +523,8 @@ void SMAA::CreateImages() {
static constexpr VkExtent2D area_extent{AREATEX_WIDTH, AREATEX_HEIGHT};
static constexpr VkExtent2D search_extent{SEARCHTEX_WIDTH, SEARCHTEX_HEIGHT};
- std::tie(m_static_images[Area], m_static_buffer_commits[Area]) =
- CreateWrappedImage(m_device, m_allocator, area_extent, VK_FORMAT_R8G8_UNORM);
- std::tie(m_static_images[Search], m_static_buffer_commits[Search]) =
- CreateWrappedImage(m_device, m_allocator, search_extent, VK_FORMAT_R8_UNORM);
+ m_static_images[Area] = CreateWrappedImage(m_allocator, area_extent, VK_FORMAT_R8G8_UNORM);
+ m_static_images[Search] = CreateWrappedImage(m_allocator, search_extent, VK_FORMAT_R8_UNORM);
m_static_image_views[Area] =
CreateWrappedImageView(m_device, m_static_images[Area], VK_FORMAT_R8G8_UNORM);
@@ -544,12 +534,11 @@ void SMAA::CreateImages() {
for (u32 i = 0; i < m_image_count; i++) {
Images& images = m_dynamic_images.emplace_back();
- std::tie(images.images[Blend], images.buffer_commits[Blend]) =
- CreateWrappedImage(m_device, m_allocator, m_extent, VK_FORMAT_R16G16B16A16_SFLOAT);
- std::tie(images.images[Edges], images.buffer_commits[Edges]) =
- CreateWrappedImage(m_device, m_allocator, m_extent, VK_FORMAT_R16G16_SFLOAT);
- std::tie(images.images[Output], images.buffer_commits[Output]) =
- CreateWrappedImage(m_device, m_allocator, m_extent, VK_FORMAT_R16G16B16A16_SFLOAT);
+ images.images[Blend] =
+ CreateWrappedImage(m_allocator, m_extent, VK_FORMAT_R16G16B16A16_SFLOAT);
+ images.images[Edges] = CreateWrappedImage(m_allocator, m_extent, VK_FORMAT_R16G16_SFLOAT);
+ images.images[Output] =
+ CreateWrappedImage(m_allocator, m_extent, VK_FORMAT_R16G16B16A16_SFLOAT);
images.image_views[Blend] =
CreateWrappedImageView(m_device, images.images[Blend], VK_FORMAT_R16G16B16A16_SFLOAT);
diff --git a/src/video_core/renderer_vulkan/vk_smaa.h b/src/video_core/renderer_vulkan/vk_smaa.h
index 99a369148..0e214258a 100644
--- a/src/video_core/renderer_vulkan/vk_smaa.h
+++ b/src/video_core/renderer_vulkan/vk_smaa.h
@@ -66,13 +66,11 @@ private:
std::array<vk::Pipeline, MaxSMAAStage> m_pipelines{};
std::array<vk::RenderPass, MaxSMAAStage> m_renderpasses{};
- std::array<MemoryCommit, MaxStaticImage> m_static_buffer_commits;
std::array<vk::Image, MaxStaticImage> m_static_images{};
std::array<vk::ImageView, MaxStaticImage> m_static_image_views{};
struct Images {
vk::DescriptorSets descriptor_sets{};
- std::array<MemoryCommit, MaxDynamicImage> buffer_commits;
std::array<vk::Image, MaxDynamicImage> images{};
std::array<vk::ImageView, MaxDynamicImage> image_views{};
std::array<vk::Framebuffer, MaxSMAAStage> framebuffers{};
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
index 74ca77216..ce92f66ab 100644
--- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
+++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
@@ -30,55 +30,6 @@ constexpr VkDeviceSize MAX_STREAM_BUFFER_REQUEST_SIZE = 8_MiB;
constexpr VkDeviceSize STREAM_BUFFER_SIZE = 128_MiB;
constexpr VkDeviceSize REGION_SIZE = STREAM_BUFFER_SIZE / StagingBufferPool::NUM_SYNCS;
-constexpr VkMemoryPropertyFlags HOST_FLAGS =
- VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
-constexpr VkMemoryPropertyFlags STREAM_FLAGS = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | HOST_FLAGS;
-
-bool IsStreamHeap(VkMemoryHeap heap) noexcept {
- return STREAM_BUFFER_SIZE < (heap.size * 2) / 3;
-}
-
-std::optional<u32> FindMemoryTypeIndex(const VkPhysicalDeviceMemoryProperties& props, u32 type_mask,
- VkMemoryPropertyFlags flags) noexcept {
- for (u32 type_index = 0; type_index < props.memoryTypeCount; ++type_index) {
- if (((type_mask >> type_index) & 1) == 0) {
- // Memory type is incompatible
- continue;
- }
- const VkMemoryType& memory_type = props.memoryTypes[type_index];
- if ((memory_type.propertyFlags & flags) != flags) {
- // Memory type doesn't have the flags we want
- continue;
- }
- if (!IsStreamHeap(props.memoryHeaps[memory_type.heapIndex])) {
- // Memory heap is not suitable for streaming
- continue;
- }
- // Success!
- return type_index;
- }
- return std::nullopt;
-}
-
-u32 FindMemoryTypeIndex(const VkPhysicalDeviceMemoryProperties& props, u32 type_mask,
- bool try_device_local) {
- std::optional<u32> type;
- if (try_device_local) {
- // Try to find a DEVICE_LOCAL_BIT type, Nvidia and AMD have a dedicated heap for this
- type = FindMemoryTypeIndex(props, type_mask, STREAM_FLAGS);
- if (type) {
- return *type;
- }
- }
- // Otherwise try without the DEVICE_LOCAL_BIT
- type = FindMemoryTypeIndex(props, type_mask, HOST_FLAGS);
- if (type) {
- return *type;
- }
- // This should never happen, and in case it does, signal it as an out of memory situation
- throw vk::Exception(VK_ERROR_OUT_OF_DEVICE_MEMORY);
-}
-
size_t Region(size_t iterator) noexcept {
return iterator / REGION_SIZE;
}
@@ -87,58 +38,26 @@ size_t Region(size_t iterator) noexcept {
StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& memory_allocator_,
Scheduler& scheduler_)
: device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_} {
- const vk::Device& dev = device.GetLogical();
- stream_buffer = dev.CreateBuffer(VkBufferCreateInfo{
+ VkBufferCreateInfo stream_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
.size = STREAM_BUFFER_SIZE,
.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT |
- VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
- VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
+ VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT,
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
- if (device.HasDebuggingToolAttached()) {
- stream_buffer.SetObjectNameEXT("Stream Buffer");
- }
- VkMemoryDedicatedRequirements dedicated_reqs{
- .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
- .pNext = nullptr,
- .prefersDedicatedAllocation = VK_FALSE,
- .requiresDedicatedAllocation = VK_FALSE,
- };
- const auto requirements = dev.GetBufferMemoryRequirements(*stream_buffer, &dedicated_reqs);
- const bool make_dedicated = dedicated_reqs.prefersDedicatedAllocation == VK_TRUE ||
- dedicated_reqs.requiresDedicatedAllocation == VK_TRUE;
- const VkMemoryDedicatedAllocateInfo dedicated_info{
- .sType = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
- .pNext = nullptr,
- .image = nullptr,
- .buffer = *stream_buffer,
};
- const auto memory_properties = device.GetPhysical().GetMemoryProperties().memoryProperties;
- VkMemoryAllocateInfo stream_memory_info{
- .sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
- .pNext = make_dedicated ? &dedicated_info : nullptr,
- .allocationSize = requirements.size,
- .memoryTypeIndex =
- FindMemoryTypeIndex(memory_properties, requirements.memoryTypeBits, true),
- };
- stream_memory = dev.TryAllocateMemory(stream_memory_info);
- if (!stream_memory) {
- LOG_INFO(Render_Vulkan, "Dynamic memory allocation failed, trying with system memory");
- stream_memory_info.memoryTypeIndex =
- FindMemoryTypeIndex(memory_properties, requirements.memoryTypeBits, false);
- stream_memory = dev.AllocateMemory(stream_memory_info);
+ if (device.IsExtTransformFeedbackSupported()) {
+ stream_ci.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT;
}
-
+ stream_buffer = memory_allocator.CreateBuffer(stream_ci, MemoryUsage::Stream);
if (device.HasDebuggingToolAttached()) {
- stream_memory.SetObjectNameEXT("Stream Buffer Memory");
+ stream_buffer.SetObjectNameEXT("Stream Buffer");
}
- stream_buffer.BindMemory(*stream_memory, 0);
- stream_pointer = stream_memory.Map(0, STREAM_BUFFER_SIZE);
+ stream_pointer = stream_buffer.Mapped();
+ ASSERT_MSG(!stream_pointer.empty(), "Stream buffer must be host visible!");
}
StagingBufferPool::~StagingBufferPool() = default;
@@ -199,7 +118,7 @@ StagingBufferRef StagingBufferPool::GetStreamBuffer(size_t size) {
return StagingBufferRef{
.buffer = *stream_buffer,
.offset = static_cast<VkDeviceSize>(offset),
- .mapped_span = std::span<u8>(stream_pointer + offset, size),
+ .mapped_span = stream_pointer.subspan(offset, size),
.usage{},
.log2_level{},
.index{},
@@ -247,29 +166,29 @@ std::optional<StagingBufferRef> StagingBufferPool::TryGetReservedBuffer(size_t s
StagingBufferRef StagingBufferPool::CreateStagingBuffer(size_t size, MemoryUsage usage,
bool deferred) {
const u32 log2 = Common::Log2Ceil64(size);
- vk::Buffer buffer = device.GetLogical().CreateBuffer({
+ VkBufferCreateInfo buffer_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
.size = 1ULL << log2,
.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT |
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT |
- VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT |
- VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT,
+ VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
+ };
+ if (device.IsExtTransformFeedbackSupported()) {
+ buffer_ci.usage |= VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT;
+ }
+ vk::Buffer buffer = memory_allocator.CreateBuffer(buffer_ci, usage);
if (device.HasDebuggingToolAttached()) {
++buffer_index;
buffer.SetObjectNameEXT(fmt::format("Staging Buffer {}", buffer_index).c_str());
}
- MemoryCommit commit = memory_allocator.Commit(buffer, usage);
- const std::span<u8> mapped_span = IsHostVisible(usage) ? commit.Map() : std::span<u8>{};
-
+ const std::span<u8> mapped_span = buffer.Mapped();
StagingBuffer& entry = GetCache(usage)[log2].entries.emplace_back(StagingBuffer{
.buffer = std::move(buffer),
- .commit = std::move(commit),
.mapped_span = mapped_span,
.usage = usage,
.log2_level = log2,
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h
index 4fd15f11a..5f69f08b1 100644
--- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h
+++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.h
@@ -46,7 +46,6 @@ private:
struct StagingBuffer {
vk::Buffer buffer;
- MemoryCommit commit;
std::span<u8> mapped_span;
MemoryUsage usage;
u32 log2_level;
@@ -97,8 +96,7 @@ private:
Scheduler& scheduler;
vk::Buffer stream_buffer;
- vk::DeviceMemory stream_memory;
- u8* stream_pointer = nullptr;
+ std::span<u8> stream_pointer;
size_t iterator = 0;
size_t used_iterator = 0;
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
index f025f618b..8385b5509 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp
@@ -15,7 +15,6 @@
#include "video_core/renderer_vulkan/blit_image.h"
#include "video_core/renderer_vulkan/maxwell_to_vk.h"
#include "video_core/renderer_vulkan/vk_compute_pass.h"
-#include "video_core/renderer_vulkan/vk_rasterizer.h"
#include "video_core/renderer_vulkan/vk_render_pass_cache.h"
#include "video_core/renderer_vulkan/vk_scheduler.h"
#include "video_core/renderer_vulkan/vk_staging_buffer_pool.h"
@@ -163,11 +162,12 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
};
}
-[[nodiscard]] vk::Image MakeImage(const Device& device, const ImageInfo& info) {
+[[nodiscard]] vk::Image MakeImage(const Device& device, const MemoryAllocator& allocator,
+ const ImageInfo& info) {
if (info.type == ImageType::Buffer) {
return vk::Image{};
}
- return device.GetLogical().CreateImage(MakeImageCreateInfo(device, info));
+ return allocator.CreateImage(MakeImageCreateInfo(device, info));
}
[[nodiscard]] VkImageAspectFlags ImageAspectMask(PixelFormat format) {
@@ -330,9 +330,9 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
};
}
-[[maybe_unused]] [[nodiscard]] std::vector<VkBufferCopy> TransformBufferCopies(
- std::span<const VideoCommon::BufferCopy> copies, size_t buffer_offset) {
- std::vector<VkBufferCopy> result(copies.size());
+[[maybe_unused]] [[nodiscard]] boost::container::small_vector<VkBufferCopy, 16>
+TransformBufferCopies(std::span<const VideoCommon::BufferCopy> copies, size_t buffer_offset) {
+ boost::container::small_vector<VkBufferCopy, 16> result(copies.size());
std::ranges::transform(
copies, result.begin(), [buffer_offset](const VideoCommon::BufferCopy& copy) {
return VkBufferCopy{
@@ -344,7 +344,7 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
return result;
}
-[[nodiscard]] std::vector<VkBufferImageCopy> TransformBufferImageCopies(
+[[nodiscard]] boost::container::small_vector<VkBufferImageCopy, 16> TransformBufferImageCopies(
std::span<const BufferImageCopy> copies, size_t buffer_offset, VkImageAspectFlags aspect_mask) {
struct Maker {
VkBufferImageCopy operator()(const BufferImageCopy& copy) const {
@@ -377,14 +377,14 @@ constexpr VkBorderColor ConvertBorderColor(const std::array<float, 4>& color) {
VkImageAspectFlags aspect_mask;
};
if (aspect_mask == (VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT)) {
- std::vector<VkBufferImageCopy> result(copies.size() * 2);
+ boost::container::small_vector<VkBufferImageCopy, 16> result(copies.size() * 2);
std::ranges::transform(copies, result.begin(),
Maker{buffer_offset, VK_IMAGE_ASPECT_DEPTH_BIT});
std::ranges::transform(copies, result.begin() + copies.size(),
Maker{buffer_offset, VK_IMAGE_ASPECT_STENCIL_BIT});
return result;
} else {
- std::vector<VkBufferImageCopy> result(copies.size());
+ boost::container::small_vector<VkBufferImageCopy, 16> result(copies.size());
std::ranges::transform(copies, result.begin(), Maker{buffer_offset, aspect_mask});
return result;
}
@@ -839,14 +839,14 @@ bool TextureCacheRuntime::ShouldReinterpret(Image& dst, Image& src) {
VkBuffer TextureCacheRuntime::GetTemporaryBuffer(size_t needed_size) {
const auto level = (8 * sizeof(size_t)) - std::countl_zero(needed_size - 1ULL);
- if (buffer_commits[level]) {
+ if (buffers[level]) {
return *buffers[level];
}
const auto new_size = Common::NextPow2(needed_size);
static constexpr VkBufferUsageFlags flags =
VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT |
VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT;
- buffers[level] = device.GetLogical().CreateBuffer({
+ const VkBufferCreateInfo temp_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -855,9 +855,8 @@ VkBuffer TextureCacheRuntime::GetTemporaryBuffer(size_t needed_size) {
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
- buffer_commits[level] = std::make_unique<MemoryCommit>(
- memory_allocator.Commit(buffers[level], MemoryUsage::DeviceLocal));
+ };
+ buffers[level] = memory_allocator.CreateBuffer(temp_ci, MemoryUsage::DeviceLocal);
return *buffers[level];
}
@@ -867,8 +866,8 @@ void TextureCacheRuntime::BarrierFeedbackLoop() {
void TextureCacheRuntime::ReinterpretImage(Image& dst, Image& src,
std::span<const VideoCommon::ImageCopy> copies) {
- std::vector<VkBufferImageCopy> vk_in_copies(copies.size());
- std::vector<VkBufferImageCopy> vk_out_copies(copies.size());
+ boost::container::small_vector<VkBufferImageCopy, 16> vk_in_copies(copies.size());
+ boost::container::small_vector<VkBufferImageCopy, 16> vk_out_copies(copies.size());
const VkImageAspectFlags src_aspect_mask = src.AspectMask();
const VkImageAspectFlags dst_aspect_mask = dst.AspectMask();
@@ -1157,7 +1156,7 @@ void TextureCacheRuntime::ConvertImage(Framebuffer* dst, ImageView& dst_view, Im
void TextureCacheRuntime::CopyImage(Image& dst, Image& src,
std::span<const VideoCommon::ImageCopy> copies) {
- std::vector<VkImageCopy> vk_copies(copies.size());
+ boost::container::small_vector<VkImageCopy, 16> vk_copies(copies.size());
const VkImageAspectFlags aspect_mask = dst.AspectMask();
ASSERT(aspect_mask == src.AspectMask());
@@ -1266,8 +1265,8 @@ void TextureCacheRuntime::TickFrame() {}
Image::Image(TextureCacheRuntime& runtime_, const ImageInfo& info_, GPUVAddr gpu_addr_,
VAddr cpu_addr_)
: VideoCommon::ImageBase(info_, gpu_addr_, cpu_addr_), scheduler{&runtime_.scheduler},
- runtime{&runtime_}, original_image(MakeImage(runtime_.device, info)),
- commit(runtime_.memory_allocator.Commit(original_image, MemoryUsage::DeviceLocal)),
+ runtime{&runtime_},
+ original_image(MakeImage(runtime_.device, runtime_.memory_allocator, info)),
aspect_mask(ImageAspectMask(info.format)) {
if (IsPixelFormatASTC(info.format) && !runtime->device.IsOptimalAstcSupported()) {
if (Settings::values.async_astc.GetValue()) {
@@ -1280,6 +1279,10 @@ Image::Image(TextureCacheRuntime& runtime_, const ImageInfo& info_, GPUVAddr gpu
flags |= VideoCommon::ImageFlagBits::Converted;
flags |= VideoCommon::ImageFlagBits::CostlyLoad;
}
+ if (IsPixelFormatBCn(info.format) && !runtime->device.IsOptimalBcnSupported()) {
+ flags |= VideoCommon::ImageFlagBits::Converted;
+ flags |= VideoCommon::ImageFlagBits::CostlyLoad;
+ }
if (runtime->device.HasDebuggingToolAttached()) {
original_image.SetObjectNameEXT(VideoCommon::Name(*this).c_str());
}
@@ -1332,7 +1335,7 @@ void Image::UploadMemory(VkBuffer buffer, VkDeviceSize offset,
ScaleDown(true);
}
scheduler->RequestOutsideRenderPassOperationContext();
- std::vector vk_copies = TransformBufferImageCopies(copies, offset, aspect_mask);
+ auto vk_copies = TransformBufferImageCopies(copies, offset, aspect_mask);
const VkBuffer src_buffer = buffer;
const VkImage vk_image = *original_image;
const VkImageAspectFlags vk_aspect_mask = aspect_mask;
@@ -1367,8 +1370,9 @@ void Image::DownloadMemory(std::span<VkBuffer> buffers_span, std::span<VkDeviceS
if (is_rescaled) {
ScaleDown();
}
- boost::container::small_vector<VkBuffer, 1> buffers_vector{};
- boost::container::small_vector<std::vector<VkBufferImageCopy>, 1> vk_copies;
+ boost::container::small_vector<VkBuffer, 8> buffers_vector{};
+ boost::container::small_vector<boost::container::small_vector<VkBufferImageCopy, 16>, 8>
+ vk_copies;
for (size_t index = 0; index < buffers_span.size(); index++) {
buffers_vector.emplace_back(buffers_span[index]);
vk_copies.emplace_back(
@@ -1467,9 +1471,7 @@ bool Image::ScaleUp(bool ignore) {
auto scaled_info = info;
scaled_info.size.width = scaled_width;
scaled_info.size.height = scaled_height;
- scaled_image = MakeImage(runtime->device, scaled_info);
- auto& allocator = runtime->memory_allocator;
- scaled_commit = MemoryCommit(allocator.Commit(scaled_image, MemoryUsage::DeviceLocal));
+ scaled_image = MakeImage(runtime->device, runtime->memory_allocator, scaled_info);
ignore = false;
}
current_image = *scaled_image;
@@ -1858,7 +1860,7 @@ Framebuffer::~Framebuffer() = default;
void Framebuffer::CreateFramebuffer(TextureCacheRuntime& runtime,
std::span<ImageView*, NUM_RT> color_buffers,
ImageView* depth_buffer, bool is_rescaled) {
- std::vector<VkImageView> attachments;
+ boost::container::small_vector<VkImageView, NUM_RT + 1> attachments;
RenderPassKey renderpass_key{};
s32 num_layers = 1;
diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h
index f14525dcb..220943116 100644
--- a/src/video_core/renderer_vulkan/vk_texture_cache.h
+++ b/src/video_core/renderer_vulkan/vk_texture_cache.h
@@ -116,7 +116,6 @@ public:
static constexpr size_t indexing_slots = 8 * sizeof(size_t);
std::array<vk::Buffer, indexing_slots> buffers{};
- std::array<std::unique_ptr<MemoryCommit>, indexing_slots> buffer_commits{};
};
class Image : public VideoCommon::ImageBase {
@@ -180,12 +179,10 @@ private:
TextureCacheRuntime* runtime{};
vk::Image original_image;
- MemoryCommit commit;
std::vector<vk::ImageView> storage_image_views;
VkImageAspectFlags aspect_mask = 0;
bool initialized = false;
vk::Image scaled_image{};
- MemoryCommit scaled_commit{};
VkImage current_image{};
std::unique_ptr<Framebuffer> scale_framebuffer;
diff --git a/src/video_core/renderer_vulkan/vk_turbo_mode.cpp b/src/video_core/renderer_vulkan/vk_turbo_mode.cpp
index a802d3c49..460d8d59d 100644
--- a/src/video_core/renderer_vulkan/vk_turbo_mode.cpp
+++ b/src/video_core/renderer_vulkan/vk_turbo_mode.cpp
@@ -18,7 +18,7 @@ using namespace Common::Literals;
TurboMode::TurboMode(const vk::Instance& instance, const vk::InstanceDispatch& dld)
#ifndef ANDROID
- : m_device{CreateDevice(instance, dld, VK_NULL_HANDLE)}, m_allocator{m_device, false}
+ : m_device{CreateDevice(instance, dld, VK_NULL_HANDLE)}, m_allocator{m_device}
#endif
{
{
@@ -41,7 +41,7 @@ void TurboMode::Run(std::stop_token stop_token) {
auto& dld = m_device.GetLogical();
// Allocate buffer. 2MiB should be sufficient.
- auto buffer = dld.CreateBuffer(VkBufferCreateInfo{
+ const VkBufferCreateInfo buffer_ci = {
.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
.pNext = nullptr,
.flags = 0,
@@ -50,10 +50,8 @@ void TurboMode::Run(std::stop_token stop_token) {
.sharingMode = VK_SHARING_MODE_EXCLUSIVE,
.queueFamilyIndexCount = 0,
.pQueueFamilyIndices = nullptr,
- });
-
- // Commit some device local memory for the buffer.
- auto commit = m_allocator.Commit(buffer, MemoryUsage::DeviceLocal);
+ };
+ vk::Buffer buffer = m_allocator.CreateBuffer(buffer_ci, MemoryUsage::DeviceLocal);
// Create the descriptor pool to contain our descriptor.
static constexpr VkDescriptorPoolSize pool_size{
diff --git a/src/video_core/shader_cache.cpp b/src/video_core/shader_cache.cpp
index c5213875b..4db948b6d 100644
--- a/src/video_core/shader_cache.cpp
+++ b/src/video_core/shader_cache.cpp
@@ -151,11 +151,9 @@ void ShaderCache::RemovePendingShaders() {
marked_for_removal.erase(std::unique(marked_for_removal.begin(), marked_for_removal.end()),
marked_for_removal.end());
- std::vector<ShaderInfo*> removed_shaders;
- removed_shaders.reserve(marked_for_removal.size());
+ boost::container::small_vector<ShaderInfo*, 16> removed_shaders;
std::scoped_lock lock{lookup_mutex};
-
for (Entry* const entry : marked_for_removal) {
removed_shaders.push_back(entry->data);
diff --git a/src/video_core/surface.cpp b/src/video_core/surface.cpp
index cb51529e4..e16cd5e73 100644
--- a/src/video_core/surface.cpp
+++ b/src/video_core/surface.cpp
@@ -269,6 +269,28 @@ bool IsPixelFormatASTC(PixelFormat format) {
}
}
+bool IsPixelFormatBCn(PixelFormat format) {
+ switch (format) {
+ case PixelFormat::BC1_RGBA_UNORM:
+ case PixelFormat::BC2_UNORM:
+ case PixelFormat::BC3_UNORM:
+ case PixelFormat::BC4_UNORM:
+ case PixelFormat::BC4_SNORM:
+ case PixelFormat::BC5_UNORM:
+ case PixelFormat::BC5_SNORM:
+ case PixelFormat::BC1_RGBA_SRGB:
+ case PixelFormat::BC2_SRGB:
+ case PixelFormat::BC3_SRGB:
+ case PixelFormat::BC7_UNORM:
+ case PixelFormat::BC6H_UFLOAT:
+ case PixelFormat::BC6H_SFLOAT:
+ case PixelFormat::BC7_SRGB:
+ return true;
+ default:
+ return false;
+ }
+}
+
bool IsPixelFormatSRGB(PixelFormat format) {
switch (format) {
case PixelFormat::A8B8G8R8_SRGB:
diff --git a/src/video_core/surface.h b/src/video_core/surface.h
index 0225d3287..9b9c4d9bc 100644
--- a/src/video_core/surface.h
+++ b/src/video_core/surface.h
@@ -501,6 +501,8 @@ SurfaceType GetFormatType(PixelFormat pixel_format);
bool IsPixelFormatASTC(PixelFormat format);
+bool IsPixelFormatBCn(PixelFormat format);
+
bool IsPixelFormatSRGB(PixelFormat format);
bool IsPixelFormatInteger(PixelFormat format);
diff --git a/src/video_core/texture_cache/decode_bc.cpp b/src/video_core/texture_cache/decode_bc.cpp
new file mode 100644
index 000000000..3e26474a3
--- /dev/null
+++ b/src/video_core/texture_cache/decode_bc.cpp
@@ -0,0 +1,129 @@
+// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <algorithm>
+#include <array>
+#include <span>
+#include <bc_decoder.h>
+
+#include "common/common_types.h"
+#include "video_core/texture_cache/decode_bc.h"
+
+namespace VideoCommon {
+
+namespace {
+constexpr u32 BLOCK_SIZE = 4;
+
+using VideoCore::Surface::PixelFormat;
+
+constexpr bool IsSigned(PixelFormat pixel_format) {
+ switch (pixel_format) {
+ case PixelFormat::BC4_SNORM:
+ case PixelFormat::BC4_UNORM:
+ case PixelFormat::BC5_SNORM:
+ case PixelFormat::BC5_UNORM:
+ case PixelFormat::BC6H_SFLOAT:
+ case PixelFormat::BC6H_UFLOAT:
+ return true;
+ default:
+ return false;
+ }
+}
+
+constexpr u32 BlockSize(PixelFormat pixel_format) {
+ switch (pixel_format) {
+ case PixelFormat::BC1_RGBA_SRGB:
+ case PixelFormat::BC1_RGBA_UNORM:
+ case PixelFormat::BC4_SNORM:
+ case PixelFormat::BC4_UNORM:
+ return 8;
+ default:
+ return 16;
+ }
+}
+} // Anonymous namespace
+
+u32 ConvertedBytesPerBlock(VideoCore::Surface::PixelFormat pixel_format) {
+ switch (pixel_format) {
+ case PixelFormat::BC4_SNORM:
+ case PixelFormat::BC4_UNORM:
+ return 1;
+ case PixelFormat::BC5_SNORM:
+ case PixelFormat::BC5_UNORM:
+ return 2;
+ case PixelFormat::BC6H_SFLOAT:
+ case PixelFormat::BC6H_UFLOAT:
+ return 8;
+ default:
+ return 4;
+ }
+}
+
+template <auto decompress, PixelFormat pixel_format>
+void DecompressBlocks(std::span<const u8> input, std::span<u8> output, Extent3D extent,
+ bool is_signed = false) {
+ const u32 out_bpp = ConvertedBytesPerBlock(pixel_format);
+ const u32 block_width = std::min(extent.width, BLOCK_SIZE);
+ const u32 block_height = std::min(extent.height, BLOCK_SIZE);
+ const u32 pitch = extent.width * out_bpp;
+ size_t input_offset = 0;
+ size_t output_offset = 0;
+ for (u32 slice = 0; slice < extent.depth; ++slice) {
+ for (u32 y = 0; y < extent.height; y += block_height) {
+ size_t row_offset = 0;
+ for (u32 x = 0; x < extent.width;
+ x += block_width, row_offset += block_width * out_bpp) {
+ const u8* src = input.data() + input_offset;
+ u8* const dst = output.data() + output_offset + row_offset;
+ if constexpr (IsSigned(pixel_format)) {
+ decompress(src, dst, x, y, extent.width, extent.height, is_signed);
+ } else {
+ decompress(src, dst, x, y, extent.width, extent.height);
+ }
+ input_offset += BlockSize(pixel_format);
+ }
+ output_offset += block_height * pitch;
+ }
+ }
+}
+
+void DecompressBCn(std::span<const u8> input, std::span<u8> output, Extent3D extent,
+ VideoCore::Surface::PixelFormat pixel_format) {
+ switch (pixel_format) {
+ case PixelFormat::BC1_RGBA_UNORM:
+ case PixelFormat::BC1_RGBA_SRGB:
+ DecompressBlocks<bcn::DecodeBc1, PixelFormat::BC1_RGBA_UNORM>(input, output, extent);
+ break;
+ case PixelFormat::BC2_UNORM:
+ case PixelFormat::BC2_SRGB:
+ DecompressBlocks<bcn::DecodeBc2, PixelFormat::BC2_UNORM>(input, output, extent);
+ break;
+ case PixelFormat::BC3_UNORM:
+ case PixelFormat::BC3_SRGB:
+ DecompressBlocks<bcn::DecodeBc3, PixelFormat::BC3_UNORM>(input, output, extent);
+ break;
+ case PixelFormat::BC4_SNORM:
+ case PixelFormat::BC4_UNORM:
+ DecompressBlocks<bcn::DecodeBc4, PixelFormat::BC4_UNORM>(
+ input, output, extent, pixel_format == PixelFormat::BC4_SNORM);
+ break;
+ case PixelFormat::BC5_SNORM:
+ case PixelFormat::BC5_UNORM:
+ DecompressBlocks<bcn::DecodeBc5, PixelFormat::BC5_UNORM>(
+ input, output, extent, pixel_format == PixelFormat::BC5_SNORM);
+ break;
+ case PixelFormat::BC6H_SFLOAT:
+ case PixelFormat::BC6H_UFLOAT:
+ DecompressBlocks<bcn::DecodeBc6, PixelFormat::BC6H_UFLOAT>(
+ input, output, extent, pixel_format == PixelFormat::BC6H_SFLOAT);
+ break;
+ case PixelFormat::BC7_SRGB:
+ case PixelFormat::BC7_UNORM:
+ DecompressBlocks<bcn::DecodeBc7, PixelFormat::BC7_UNORM>(input, output, extent);
+ break;
+ default:
+ LOG_WARNING(HW_GPU, "Unimplemented BCn decompression {}", pixel_format);
+ }
+}
+
+} // namespace VideoCommon
diff --git a/src/video_core/texture_cache/decode_bc4.h b/src/video_core/texture_cache/decode_bc.h
index ab2f735be..41d1ec0a3 100644
--- a/src/video_core/texture_cache/decode_bc4.h
+++ b/src/video_core/texture_cache/decode_bc.h
@@ -6,10 +6,14 @@
#include <span>
#include "common/common_types.h"
+#include "video_core/surface.h"
#include "video_core/texture_cache/types.h"
namespace VideoCommon {
-void DecompressBC4(std::span<const u8> data, Extent3D extent, std::span<u8> output);
+[[nodiscard]] u32 ConvertedBytesPerBlock(VideoCore::Surface::PixelFormat pixel_format);
+
+void DecompressBCn(std::span<const u8> input, std::span<u8> output, Extent3D extent,
+ VideoCore::Surface::PixelFormat pixel_format);
} // namespace VideoCommon
diff --git a/src/video_core/texture_cache/decode_bc4.cpp b/src/video_core/texture_cache/decode_bc4.cpp
deleted file mode 100644
index ef98afdca..000000000
--- a/src/video_core/texture_cache/decode_bc4.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <algorithm>
-#include <array>
-#include <span>
-
-#include "common/assert.h"
-#include "common/common_types.h"
-#include "video_core/texture_cache/decode_bc4.h"
-#include "video_core/texture_cache/types.h"
-
-namespace VideoCommon {
-
-// https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_texture_compression_rgtc.txt
-[[nodiscard]] constexpr u32 DecompressBlock(u64 bits, u32 x, u32 y) {
- const u32 code_offset = 16 + 3 * (4 * y + x);
- const u32 code = (bits >> code_offset) & 7;
- const u32 red0 = (bits >> 0) & 0xff;
- const u32 red1 = (bits >> 8) & 0xff;
- if (red0 > red1) {
- switch (code) {
- case 0:
- return red0;
- case 1:
- return red1;
- case 2:
- return (6 * red0 + 1 * red1) / 7;
- case 3:
- return (5 * red0 + 2 * red1) / 7;
- case 4:
- return (4 * red0 + 3 * red1) / 7;
- case 5:
- return (3 * red0 + 4 * red1) / 7;
- case 6:
- return (2 * red0 + 5 * red1) / 7;
- case 7:
- return (1 * red0 + 6 * red1) / 7;
- }
- } else {
- switch (code) {
- case 0:
- return red0;
- case 1:
- return red1;
- case 2:
- return (4 * red0 + 1 * red1) / 5;
- case 3:
- return (3 * red0 + 2 * red1) / 5;
- case 4:
- return (2 * red0 + 3 * red1) / 5;
- case 5:
- return (1 * red0 + 4 * red1) / 5;
- case 6:
- return 0;
- case 7:
- return 0xff;
- }
- }
- return 0;
-}
-
-void DecompressBC4(std::span<const u8> input, Extent3D extent, std::span<u8> output) {
- UNIMPLEMENTED_IF_MSG(extent.width % 4 != 0, "Unaligned width={}", extent.width);
- UNIMPLEMENTED_IF_MSG(extent.height % 4 != 0, "Unaligned height={}", extent.height);
- static constexpr u32 BLOCK_SIZE = 4;
- size_t input_offset = 0;
- for (u32 slice = 0; slice < extent.depth; ++slice) {
- for (u32 block_y = 0; block_y < extent.height / 4; ++block_y) {
- for (u32 block_x = 0; block_x < extent.width / 4; ++block_x) {
- u64 bits;
- std::memcpy(&bits, &input[input_offset], sizeof(bits));
- input_offset += sizeof(bits);
-
- for (u32 y = 0; y < BLOCK_SIZE; ++y) {
- for (u32 x = 0; x < BLOCK_SIZE; ++x) {
- const u32 linear_z = slice;
- const u32 linear_y = block_y * BLOCK_SIZE + y;
- const u32 linear_x = block_x * BLOCK_SIZE + x;
- const u32 offset_z = linear_z * extent.width * extent.height;
- const u32 offset_y = linear_y * extent.width;
- const u32 offset_x = linear_x;
- const u32 output_offset = (offset_z + offset_y + offset_x) * 4ULL;
- const u32 color = DecompressBlock(bits, x, y);
- output[output_offset + 0] = static_cast<u8>(color);
- output[output_offset + 1] = 0;
- output[output_offset + 2] = 0;
- output[output_offset + 3] = 0xff;
- }
- }
- }
- }
- }
-}
-
-} // namespace VideoCommon
diff --git a/src/video_core/texture_cache/image_base.h b/src/video_core/texture_cache/image_base.h
index 1b8a17ee8..55d49d017 100644
--- a/src/video_core/texture_cache/image_base.h
+++ b/src/video_core/texture_cache/image_base.h
@@ -6,6 +6,7 @@
#include <array>
#include <optional>
#include <vector>
+#include <boost/container/small_vector.hpp>
#include "common/common_funcs.h"
#include "common/common_types.h"
@@ -108,8 +109,8 @@ struct ImageBase {
std::vector<ImageViewInfo> image_view_infos;
std::vector<ImageViewId> image_view_ids;
- std::vector<u32> slice_offsets;
- std::vector<SubresourceBase> slice_subresources;
+ boost::container::small_vector<u32, 16> slice_offsets;
+ boost::container::small_vector<SubresourceBase, 16> slice_subresources;
std::vector<AliasedImage> aliased_images;
std::vector<ImageId> overlapping_images;
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 4027d860b..8190f3ba1 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -186,6 +186,10 @@ void TextureCache<P>::FillComputeImageViews(std::span<ImageViewInOut> views) {
template <class P>
void TextureCache<P>::CheckFeedbackLoop(std::span<const ImageViewInOut> views) {
+ if (!Settings::values.barrier_feedback_loops.GetValue()) {
+ return;
+ }
+
const bool requires_barrier = [&] {
for (const auto& view : views) {
if (!view.id) {
@@ -300,7 +304,7 @@ void TextureCache<P>::SynchronizeComputeDescriptors() {
}
template <class P>
-bool TextureCache<P>::RescaleRenderTargets(bool is_clear) {
+bool TextureCache<P>::RescaleRenderTargets() {
auto& flags = maxwell3d->dirty.flags;
u32 scale_rating = 0;
bool rescaled = false;
@@ -338,13 +342,13 @@ bool TextureCache<P>::RescaleRenderTargets(bool is_clear) {
ImageViewId& color_buffer_id = render_targets.color_buffer_ids[index];
if (flags[Dirty::ColorBuffer0 + index] || force) {
flags[Dirty::ColorBuffer0 + index] = false;
- BindRenderTarget(&color_buffer_id, FindColorBuffer(index, is_clear));
+ BindRenderTarget(&color_buffer_id, FindColorBuffer(index));
}
check_rescale(color_buffer_id, tmp_color_images[index]);
}
if (flags[Dirty::ZetaBuffer] || force) {
flags[Dirty::ZetaBuffer] = false;
- BindRenderTarget(&render_targets.depth_buffer_id, FindDepthBuffer(is_clear));
+ BindRenderTarget(&render_targets.depth_buffer_id, FindDepthBuffer());
}
check_rescale(render_targets.depth_buffer_id, tmp_depth_image);
@@ -409,7 +413,7 @@ void TextureCache<P>::UpdateRenderTargets(bool is_clear) {
return;
}
- const bool rescaled = RescaleRenderTargets(is_clear);
+ const bool rescaled = RescaleRenderTargets();
if (is_rescaling != rescaled) {
flags[Dirty::RescaleViewports] = true;
flags[Dirty::RescaleScissors] = true;
@@ -522,7 +526,7 @@ void TextureCache<P>::WriteMemory(VAddr cpu_addr, size_t size) {
template <class P>
void TextureCache<P>::DownloadMemory(VAddr cpu_addr, size_t size) {
- std::vector<ImageId> images;
+ boost::container::small_vector<ImageId, 16> images;
ForEachImageInRegion(cpu_addr, size, [&images](ImageId image_id, ImageBase& image) {
if (!image.IsSafeDownload()) {
return;
@@ -575,7 +579,7 @@ std::optional<VideoCore::RasterizerDownloadArea> TextureCache<P>::GetFlushArea(V
template <class P>
void TextureCache<P>::UnmapMemory(VAddr cpu_addr, size_t size) {
- std::vector<ImageId> deleted_images;
+ boost::container::small_vector<ImageId, 16> deleted_images;
ForEachImageInRegion(cpu_addr, size, [&](ImageId id, Image&) { deleted_images.push_back(id); });
for (const ImageId id : deleted_images) {
Image& image = slot_images[id];
@@ -589,19 +593,11 @@ void TextureCache<P>::UnmapMemory(VAddr cpu_addr, size_t size) {
template <class P>
void TextureCache<P>::UnmapGPUMemory(size_t as_id, GPUVAddr gpu_addr, size_t size) {
- std::vector<ImageId> deleted_images;
+ boost::container::small_vector<ImageId, 16> deleted_images;
ForEachImageInRegionGPU(as_id, gpu_addr, size,
[&](ImageId id, Image&) { deleted_images.push_back(id); });
for (const ImageId id : deleted_images) {
Image& image = slot_images[id];
- if (True(image.flags & ImageFlagBits::CpuModified)) {
- return;
- }
- image.flags |= ImageFlagBits::CpuModified;
- if (True(image.flags & ImageFlagBits::Tracked)) {
- UntrackImage(image, id);
- }
- /*
if (True(image.flags & ImageFlagBits::Remapped)) {
continue;
}
@@ -609,7 +605,6 @@ void TextureCache<P>::UnmapGPUMemory(size_t as_id, GPUVAddr gpu_addr, size_t siz
if (True(image.flags & ImageFlagBits::Tracked)) {
UntrackImage(image, id);
}
- */
}
}
@@ -875,6 +870,10 @@ ImageId TextureCache<P>::DmaImageId(const Tegra::DMA::ImageOperand& operand, boo
return NULL_IMAGE_ID;
}
auto& image = slot_images[image_id];
+ if (image.info.type == ImageType::e3D) {
+ // Don't accelerate 3D images.
+ return NULL_IMAGE_ID;
+ }
if (!is_upload && !image.info.dma_downloaded) {
// Force a full sync.
image.info.dma_downloaded = true;
@@ -1097,7 +1096,7 @@ ImageId TextureCache<P>::FindImage(const ImageInfo& info, GPUVAddr gpu_addr,
const bool native_bgr = runtime.HasNativeBgr();
const bool flexible_formats = True(options & RelaxedOptions::Format);
ImageId image_id{};
- boost::container::small_vector<ImageId, 1> image_ids;
+ boost::container::small_vector<ImageId, 8> image_ids;
const auto lambda = [&](ImageId existing_image_id, ImageBase& existing_image) {
if (True(existing_image.flags & ImageFlagBits::Remapped)) {
return false;
@@ -1618,7 +1617,7 @@ ImageId TextureCache<P>::FindDMAImage(const ImageInfo& info, GPUVAddr gpu_addr)
}
}
ImageId image_id{};
- boost::container::small_vector<ImageId, 1> image_ids;
+ boost::container::small_vector<ImageId, 8> image_ids;
const auto lambda = [&](ImageId existing_image_id, ImageBase& existing_image) {
if (True(existing_image.flags & ImageFlagBits::Remapped)) {
return false;
@@ -1678,7 +1677,7 @@ SamplerId TextureCache<P>::FindSampler(const TSCEntry& config) {
}
template <class P>
-ImageViewId TextureCache<P>::FindColorBuffer(size_t index, bool is_clear) {
+ImageViewId TextureCache<P>::FindColorBuffer(size_t index) {
const auto& regs = maxwell3d->regs;
if (index >= regs.rt_control.count) {
return ImageViewId{};
@@ -1692,11 +1691,11 @@ ImageViewId TextureCache<P>::FindColorBuffer(size_t index, bool is_clear) {
return ImageViewId{};
}
const ImageInfo info(regs.rt[index], regs.anti_alias_samples_mode);
- return FindRenderTargetView(info, gpu_addr, is_clear);
+ return FindRenderTargetView(info, gpu_addr);
}
template <class P>
-ImageViewId TextureCache<P>::FindDepthBuffer(bool is_clear) {
+ImageViewId TextureCache<P>::FindDepthBuffer() {
const auto& regs = maxwell3d->regs;
if (!regs.zeta_enable) {
return ImageViewId{};
@@ -1706,18 +1705,16 @@ ImageViewId TextureCache<P>::FindDepthBuffer(bool is_clear) {
return ImageViewId{};
}
const ImageInfo info(regs.zeta, regs.zeta_size, regs.anti_alias_samples_mode);
- return FindRenderTargetView(info, gpu_addr, is_clear);
+ return FindRenderTargetView(info, gpu_addr);
}
template <class P>
-ImageViewId TextureCache<P>::FindRenderTargetView(const ImageInfo& info, GPUVAddr gpu_addr,
- bool is_clear) {
- const auto options = is_clear ? RelaxedOptions::Samples : RelaxedOptions{};
+ImageViewId TextureCache<P>::FindRenderTargetView(const ImageInfo& info, GPUVAddr gpu_addr) {
ImageId image_id{};
bool delete_state = has_deleted_images;
do {
has_deleted_images = false;
- image_id = FindOrInsertImage(info, gpu_addr, options);
+ image_id = FindOrInsertImage(info, gpu_addr);
delete_state |= has_deleted_images;
} while (has_deleted_images);
has_deleted_images = delete_state;
@@ -1940,7 +1937,7 @@ void TextureCache<P>::RegisterImage(ImageId image_id) {
image.map_view_id = map_id;
return;
}
- std::vector<ImageViewId> sparse_maps{};
+ boost::container::small_vector<ImageViewId, 16> sparse_maps;
ForEachSparseSegment(
image, [this, image_id, &sparse_maps](GPUVAddr gpu_addr, VAddr cpu_addr, size_t size) {
auto map_id = slot_map_views.insert(gpu_addr, cpu_addr, size, image_id);
@@ -2215,7 +2212,7 @@ void TextureCache<P>::MarkModification(ImageBase& image) noexcept {
template <class P>
void TextureCache<P>::SynchronizeAliases(ImageId image_id) {
- boost::container::small_vector<const AliasedImage*, 1> aliased_images;
+ boost::container::small_vector<const AliasedImage*, 8> aliased_images;
Image& image = slot_images[image_id];
bool any_rescaled = True(image.flags & ImageFlagBits::Rescaled);
bool any_modified = True(image.flags & ImageFlagBits::GpuModified);
diff --git a/src/video_core/texture_cache/texture_cache_base.h b/src/video_core/texture_cache/texture_cache_base.h
index d96ddea9d..e9ec91265 100644
--- a/src/video_core/texture_cache/texture_cache_base.h
+++ b/src/video_core/texture_cache/texture_cache_base.h
@@ -56,7 +56,7 @@ struct ImageViewInOut {
struct AsyncDecodeContext {
ImageId image_id;
Common::ScratchBuffer<u8> decoded_data;
- std::vector<BufferImageCopy> copies;
+ boost::container::small_vector<BufferImageCopy, 16> copies;
std::mutex mutex;
std::atomic_bool complete;
};
@@ -178,9 +178,8 @@ public:
void SynchronizeComputeDescriptors();
/// Updates the Render Targets if they can be rescaled
- /// @param is_clear True when the render targets are being used for clears
/// @retval True if the Render Targets have been rescaled.
- bool RescaleRenderTargets(bool is_clear);
+ bool RescaleRenderTargets();
/// Update bound render targets and upload memory if necessary
/// @param is_clear True when the render targets are being used for clears
@@ -336,14 +335,13 @@ private:
[[nodiscard]] SamplerId FindSampler(const TSCEntry& config);
/// Find or create an image view for the given color buffer index
- [[nodiscard]] ImageViewId FindColorBuffer(size_t index, bool is_clear);
+ [[nodiscard]] ImageViewId FindColorBuffer(size_t index);
/// Find or create an image view for the depth buffer
- [[nodiscard]] ImageViewId FindDepthBuffer(bool is_clear);
+ [[nodiscard]] ImageViewId FindDepthBuffer();
/// Find or create a view for a render target with the given image parameters
- [[nodiscard]] ImageViewId FindRenderTargetView(const ImageInfo& info, GPUVAddr gpu_addr,
- bool is_clear);
+ [[nodiscard]] ImageViewId FindRenderTargetView(const ImageInfo& info, GPUVAddr gpu_addr);
/// Iterates over all the images in a region calling func
template <typename Func>
@@ -431,7 +429,7 @@ private:
std::unordered_map<u64, std::vector<ImageMapId>, Common::IdentityHash<u64>> page_table;
std::unordered_map<u64, std::vector<ImageId>, Common::IdentityHash<u64>> sparse_page_table;
- std::unordered_map<ImageId, std::vector<ImageViewId>> sparse_views;
+ std::unordered_map<ImageId, boost::container::small_vector<ImageViewId, 16>> sparse_views;
VAddr virtual_invalid_space{};
diff --git a/src/video_core/texture_cache/util.cpp b/src/video_core/texture_cache/util.cpp
index 95a5b47d8..9a618a57a 100644
--- a/src/video_core/texture_cache/util.cpp
+++ b/src/video_core/texture_cache/util.cpp
@@ -24,7 +24,7 @@
#include "video_core/engines/maxwell_3d.h"
#include "video_core/memory_manager.h"
#include "video_core/surface.h"
-#include "video_core/texture_cache/decode_bc4.h"
+#include "video_core/texture_cache/decode_bc.h"
#include "video_core/texture_cache/format_lookup_table.h"
#include "video_core/texture_cache/formatter.h"
#include "video_core/texture_cache/samples_helper.h"
@@ -61,8 +61,6 @@ using VideoCore::Surface::PixelFormatFromDepthFormat;
using VideoCore::Surface::PixelFormatFromRenderTargetFormat;
using VideoCore::Surface::SurfaceType;
-constexpr u32 CONVERTED_BYTES_PER_BLOCK = BytesPerBlock(PixelFormat::A8B8G8R8_UNORM);
-
struct LevelInfo {
Extent3D size;
Extent3D block;
@@ -329,13 +327,13 @@ template <u32 GOB_EXTENT>
[[nodiscard]] std::optional<SubresourceExtent> ResolveOverlapRightAddress3D(
const ImageInfo& new_info, GPUVAddr gpu_addr, const ImageBase& overlap, bool strict_size) {
- const std::vector<u32> slice_offsets = CalculateSliceOffsets(new_info);
+ const auto slice_offsets = CalculateSliceOffsets(new_info);
const u32 diff = static_cast<u32>(overlap.gpu_addr - gpu_addr);
const auto it = std::ranges::find(slice_offsets, diff);
if (it == slice_offsets.end()) {
return std::nullopt;
}
- const std::vector subresources = CalculateSliceSubresources(new_info);
+ const auto subresources = CalculateSliceSubresources(new_info);
const SubresourceBase base = subresources[std::distance(slice_offsets.begin(), it)];
const ImageInfo& info = overlap.info;
if (!IsBlockLinearSizeCompatible(new_info, info, base.level, 0, strict_size)) {
@@ -612,7 +610,8 @@ u32 CalculateConvertedSizeBytes(const ImageInfo& info) noexcept {
}
return output_size;
}
- return NumBlocksPerLayer(info, TILE_SIZE) * info.resources.layers * CONVERTED_BYTES_PER_BLOCK;
+ return NumBlocksPerLayer(info, TILE_SIZE) * info.resources.layers *
+ ConvertedBytesPerBlock(info.format);
}
u32 CalculateLayerStride(const ImageInfo& info) noexcept {
@@ -655,9 +654,9 @@ LevelArray CalculateMipLevelSizes(const ImageInfo& info) noexcept {
return sizes;
}
-std::vector<u32> CalculateSliceOffsets(const ImageInfo& info) {
+boost::container::small_vector<u32, 16> CalculateSliceOffsets(const ImageInfo& info) {
ASSERT(info.type == ImageType::e3D);
- std::vector<u32> offsets;
+ boost::container::small_vector<u32, 16> offsets;
offsets.reserve(NumSlices(info));
const LevelInfo level_info = MakeLevelInfo(info);
@@ -679,9 +678,10 @@ std::vector<u32> CalculateSliceOffsets(const ImageInfo& info) {
return offsets;
}
-std::vector<SubresourceBase> CalculateSliceSubresources(const ImageInfo& info) {
+boost::container::small_vector<SubresourceBase, 16> CalculateSliceSubresources(
+ const ImageInfo& info) {
ASSERT(info.type == ImageType::e3D);
- std::vector<SubresourceBase> subresources;
+ boost::container::small_vector<SubresourceBase, 16> subresources;
subresources.reserve(NumSlices(info));
for (s32 level = 0; level < info.resources.levels; ++level) {
const s32 depth = AdjustMipSize(info.size.depth, level);
@@ -723,8 +723,10 @@ ImageViewType RenderTargetImageViewType(const ImageInfo& info) noexcept {
}
}
-std::vector<ImageCopy> MakeShrinkImageCopies(const ImageInfo& dst, const ImageInfo& src,
- SubresourceBase base, u32 up_scale, u32 down_shift) {
+boost::container::small_vector<ImageCopy, 16> MakeShrinkImageCopies(const ImageInfo& dst,
+ const ImageInfo& src,
+ SubresourceBase base,
+ u32 up_scale, u32 down_shift) {
ASSERT(dst.resources.levels >= src.resources.levels);
const bool is_dst_3d = dst.type == ImageType::e3D;
@@ -733,7 +735,7 @@ std::vector<ImageCopy> MakeShrinkImageCopies(const ImageInfo& dst, const ImageIn
ASSERT(src.resources.levels == 1);
}
const bool both_2d{src.type == ImageType::e2D && dst.type == ImageType::e2D};
- std::vector<ImageCopy> copies;
+ boost::container::small_vector<ImageCopy, 16> copies;
copies.reserve(src.resources.levels);
for (s32 level = 0; level < src.resources.levels; ++level) {
ImageCopy& copy = copies.emplace_back();
@@ -770,9 +772,10 @@ std::vector<ImageCopy> MakeShrinkImageCopies(const ImageInfo& dst, const ImageIn
return copies;
}
-std::vector<ImageCopy> MakeReinterpretImageCopies(const ImageInfo& src, u32 up_scale,
- u32 down_shift) {
- std::vector<ImageCopy> copies;
+boost::container::small_vector<ImageCopy, 16> MakeReinterpretImageCopies(const ImageInfo& src,
+ u32 up_scale,
+ u32 down_shift) {
+ boost::container::small_vector<ImageCopy, 16> copies;
copies.reserve(src.resources.levels);
const bool is_3d = src.type == ImageType::e3D;
for (s32 level = 0; level < src.resources.levels; ++level) {
@@ -824,9 +827,11 @@ bool IsValidEntry(const Tegra::MemoryManager& gpu_memory, const TICEntry& config
return gpu_memory.GpuToCpuAddress(address, guest_size_bytes).has_value();
}
-std::vector<BufferImageCopy> UnswizzleImage(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr,
- const ImageInfo& info, std::span<const u8> input,
- std::span<u8> output) {
+boost::container::small_vector<BufferImageCopy, 16> UnswizzleImage(Tegra::MemoryManager& gpu_memory,
+ GPUVAddr gpu_addr,
+ const ImageInfo& info,
+ std::span<const u8> input,
+ std::span<u8> output) {
const size_t guest_size_bytes = input.size_bytes();
const u32 bpp_log2 = BytesPerBlockLog2(info.format);
const Extent3D size = info.size;
@@ -861,7 +866,7 @@ std::vector<BufferImageCopy> UnswizzleImage(Tegra::MemoryManager& gpu_memory, GP
info.tile_width_spacing);
size_t guest_offset = 0;
u32 host_offset = 0;
- std::vector<BufferImageCopy> copies(num_levels);
+ boost::container::small_vector<BufferImageCopy, 16> copies(num_levels);
for (s32 level = 0; level < num_levels; ++level) {
const Extent3D level_size = AdjustMipSize(size, level);
@@ -939,7 +944,8 @@ void ConvertImage(std::span<const u8> input, const ImageInfo& info, std::span<u8
tile_size.height, output.subspan(output_offset));
output_offset += copy.image_extent.width * copy.image_extent.height *
- copy.image_subresource.num_layers * CONVERTED_BYTES_PER_BLOCK;
+ copy.image_subresource.num_layers *
+ BytesPerBlock(PixelFormat::A8B8G8R8_UNORM);
} else if (astc) {
// BC1 uses 0.5 bytes per texel
// BC3 uses 1 byte per texel
@@ -950,7 +956,8 @@ void ConvertImage(std::span<const u8> input, const ImageInfo& info, std::span<u8
const u32 plane_dim = copy.image_extent.width * copy.image_extent.height;
const u32 level_size = plane_dim * copy.image_extent.depth *
- copy.image_subresource.num_layers * CONVERTED_BYTES_PER_BLOCK;
+ copy.image_subresource.num_layers *
+ BytesPerBlock(PixelFormat::A8B8G8R8_UNORM);
decode_scratch.resize_destructive(level_size);
Tegra::Texture::ASTC::Decompress(
@@ -970,15 +977,20 @@ void ConvertImage(std::span<const u8> input, const ImageInfo& info, std::span<u8
bpp_div;
output_offset += static_cast<u32>(copy.buffer_size);
} else {
- DecompressBC4(input_offset, copy.image_extent, output.subspan(output_offset));
-
+ const Extent3D image_extent{
+ .width = copy.image_extent.width,
+ .height = copy.image_extent.height * copy.image_subresource.num_layers,
+ .depth = copy.image_extent.depth,
+ };
+ DecompressBCn(input_offset, output.subspan(output_offset), image_extent, info.format);
output_offset += copy.image_extent.width * copy.image_extent.height *
- copy.image_subresource.num_layers * CONVERTED_BYTES_PER_BLOCK;
+ copy.image_subresource.num_layers *
+ ConvertedBytesPerBlock(info.format);
}
}
}
-std::vector<BufferImageCopy> FullDownloadCopies(const ImageInfo& info) {
+boost::container::small_vector<BufferImageCopy, 16> FullDownloadCopies(const ImageInfo& info) {
const Extent3D size = info.size;
const u32 bytes_per_block = BytesPerBlock(info.format);
if (info.type == ImageType::Linear) {
@@ -1006,7 +1018,7 @@ std::vector<BufferImageCopy> FullDownloadCopies(const ImageInfo& info) {
u32 host_offset = 0;
- std::vector<BufferImageCopy> copies(num_levels);
+ boost::container::small_vector<BufferImageCopy, 16> copies(num_levels);
for (s32 level = 0; level < num_levels; ++level) {
const Extent3D level_size = AdjustMipSize(size, level);
const u32 num_blocks_per_layer = NumBlocks(level_size, tile_size);
@@ -1042,10 +1054,10 @@ Extent3D MipBlockSize(const ImageInfo& info, u32 level) {
return AdjustMipBlockSize(num_tiles, level_info.block, level);
}
-std::vector<SwizzleParameters> FullUploadSwizzles(const ImageInfo& info) {
+boost::container::small_vector<SwizzleParameters, 16> FullUploadSwizzles(const ImageInfo& info) {
const Extent2D tile_size = DefaultBlockSize(info.format);
if (info.type == ImageType::Linear) {
- return std::vector{SwizzleParameters{
+ return {SwizzleParameters{
.num_tiles = AdjustTileSize(info.size, tile_size),
.block = {},
.buffer_offset = 0,
@@ -1057,7 +1069,7 @@ std::vector<SwizzleParameters> FullUploadSwizzles(const ImageInfo& info) {
const s32 num_levels = info.resources.levels;
u32 guest_offset = 0;
- std::vector<SwizzleParameters> params(num_levels);
+ boost::container::small_vector<SwizzleParameters, 16> params(num_levels);
for (s32 level = 0; level < num_levels; ++level) {
const Extent3D level_size = AdjustMipSize(size, level);
const Extent3D num_tiles = AdjustTileSize(level_size, tile_size);
diff --git a/src/video_core/texture_cache/util.h b/src/video_core/texture_cache/util.h
index 84aa6880d..ab45a43c4 100644
--- a/src/video_core/texture_cache/util.h
+++ b/src/video_core/texture_cache/util.h
@@ -5,6 +5,7 @@
#include <optional>
#include <span>
+#include <boost/container/small_vector.hpp>
#include "common/common_types.h"
#include "common/scratch_buffer.h"
@@ -40,9 +41,10 @@ struct OverlapResult {
[[nodiscard]] LevelArray CalculateMipLevelSizes(const ImageInfo& info) noexcept;
-[[nodiscard]] std::vector<u32> CalculateSliceOffsets(const ImageInfo& info);
+[[nodiscard]] boost::container::small_vector<u32, 16> CalculateSliceOffsets(const ImageInfo& info);
-[[nodiscard]] std::vector<SubresourceBase> CalculateSliceSubresources(const ImageInfo& info);
+[[nodiscard]] boost::container::small_vector<SubresourceBase, 16> CalculateSliceSubresources(
+ const ImageInfo& info);
[[nodiscard]] u32 CalculateLevelStrideAlignment(const ImageInfo& info, u32 level);
@@ -51,21 +53,18 @@ struct OverlapResult {
[[nodiscard]] ImageViewType RenderTargetImageViewType(const ImageInfo& info) noexcept;
-[[nodiscard]] std::vector<ImageCopy> MakeShrinkImageCopies(const ImageInfo& dst,
- const ImageInfo& src,
- SubresourceBase base, u32 up_scale = 1,
- u32 down_shift = 0);
+[[nodiscard]] boost::container::small_vector<ImageCopy, 16> MakeShrinkImageCopies(
+ const ImageInfo& dst, const ImageInfo& src, SubresourceBase base, u32 up_scale = 1,
+ u32 down_shift = 0);
-[[nodiscard]] std::vector<ImageCopy> MakeReinterpretImageCopies(const ImageInfo& src,
- u32 up_scale = 1,
- u32 down_shift = 0);
+[[nodiscard]] boost::container::small_vector<ImageCopy, 16> MakeReinterpretImageCopies(
+ const ImageInfo& src, u32 up_scale = 1, u32 down_shift = 0);
[[nodiscard]] bool IsValidEntry(const Tegra::MemoryManager& gpu_memory, const TICEntry& config);
-[[nodiscard]] std::vector<BufferImageCopy> UnswizzleImage(Tegra::MemoryManager& gpu_memory,
- GPUVAddr gpu_addr, const ImageInfo& info,
- std::span<const u8> input,
- std::span<u8> output);
+[[nodiscard]] boost::container::small_vector<BufferImageCopy, 16> UnswizzleImage(
+ Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr, const ImageInfo& info,
+ std::span<const u8> input, std::span<u8> output);
[[nodiscard]] BufferCopy UploadBufferCopy(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr,
const ImageBase& image, std::span<u8> output);
@@ -73,13 +72,15 @@ struct OverlapResult {
void ConvertImage(std::span<const u8> input, const ImageInfo& info, std::span<u8> output,
std::span<BufferImageCopy> copies);
-[[nodiscard]] std::vector<BufferImageCopy> FullDownloadCopies(const ImageInfo& info);
+[[nodiscard]] boost::container::small_vector<BufferImageCopy, 16> FullDownloadCopies(
+ const ImageInfo& info);
[[nodiscard]] Extent3D MipSize(Extent3D size, u32 level);
[[nodiscard]] Extent3D MipBlockSize(const ImageInfo& info, u32 level);
-[[nodiscard]] std::vector<SwizzleParameters> FullUploadSwizzles(const ImageInfo& info);
+[[nodiscard]] boost::container::small_vector<SwizzleParameters, 16> FullUploadSwizzles(
+ const ImageInfo& info);
void SwizzleImage(Tegra::MemoryManager& gpu_memory, GPUVAddr gpu_addr, const ImageInfo& info,
std::span<const BufferImageCopy> copies, std::span<const u8> memory,
diff --git a/src/video_core/textures/bcn.cpp b/src/video_core/textures/bcn.cpp
index 671212a49..16ddbe320 100644
--- a/src/video_core/textures/bcn.cpp
+++ b/src/video_core/textures/bcn.cpp
@@ -3,7 +3,6 @@
#include <stb_dxt.h>
#include <string.h>
-
#include "common/alignment.h"
#include "video_core/textures/bcn.h"
#include "video_core/textures/workers.h"
diff --git a/src/video_core/textures/bcn.h b/src/video_core/textures/bcn.h
index 6464af885..d5d2a16c9 100644
--- a/src/video_core/textures/bcn.h
+++ b/src/video_core/textures/bcn.h
@@ -4,14 +4,13 @@
#pragma once
#include <span>
-#include <stdint.h>
+
+#include "common/common_types.h"
namespace Tegra::Texture::BCN {
-void CompressBC1(std::span<const uint8_t> data, uint32_t width, uint32_t height, uint32_t depth,
- std::span<uint8_t> output);
+void CompressBC1(std::span<const u8> data, u32 width, u32 height, u32 depth, std::span<u8> output);
-void CompressBC3(std::span<const uint8_t> data, uint32_t width, uint32_t height, uint32_t depth,
- std::span<uint8_t> output);
+void CompressBC3(std::span<const u8> data, u32 width, u32 height, u32 depth, std::span<u8> output);
} // namespace Tegra::Texture::BCN
diff --git a/src/video_core/transform_feedback.cpp b/src/video_core/transform_feedback.cpp
index 155599316..1f353d2df 100644
--- a/src/video_core/transform_feedback.cpp
+++ b/src/video_core/transform_feedback.cpp
@@ -13,7 +13,7 @@
namespace VideoCommon {
-std::vector<Shader::TransformFeedbackVarying> MakeTransformFeedbackVaryings(
+std::pair<std::array<Shader::TransformFeedbackVarying, 256>, u32> MakeTransformFeedbackVaryings(
const TransformFeedbackState& state) {
static constexpr std::array VECTORS{
28U, // gl_Position
@@ -62,7 +62,8 @@ std::vector<Shader::TransformFeedbackVarying> MakeTransformFeedbackVaryings(
216U, // gl_TexCoord[6]
220U, // gl_TexCoord[7]
};
- std::vector<Shader::TransformFeedbackVarying> xfb(256);
+ std::array<Shader::TransformFeedbackVarying, 256> xfb{};
+ u32 count{0};
for (size_t buffer = 0; buffer < state.layouts.size(); ++buffer) {
const auto& locations = state.varyings[buffer];
const auto& layout = state.layouts[buffer];
@@ -103,11 +104,12 @@ std::vector<Shader::TransformFeedbackVarying> MakeTransformFeedbackVaryings(
}
}
xfb[attribute] = varying;
+ count = std::max(count, attribute);
highest = std::max(highest, (base_offset + varying.components) * 4);
}
UNIMPLEMENTED_IF(highest != layout.stride);
}
- return xfb;
+ return {xfb, count + 1};
}
} // namespace VideoCommon
diff --git a/src/video_core/transform_feedback.h b/src/video_core/transform_feedback.h
index d13eb16c3..401b1352a 100644
--- a/src/video_core/transform_feedback.h
+++ b/src/video_core/transform_feedback.h
@@ -24,7 +24,7 @@ struct TransformFeedbackState {
varyings;
};
-std::vector<Shader::TransformFeedbackVarying> MakeTransformFeedbackVaryings(
+std::pair<std::array<Shader::TransformFeedbackVarying, 256>, u32> MakeTransformFeedbackVaryings(
const TransformFeedbackState& state);
} // namespace VideoCommon
diff --git a/src/video_core/vulkan_common/vulkan_debug_callback.cpp b/src/video_core/vulkan_common/vulkan_debug_callback.cpp
index 9de484c29..67e8065a4 100644
--- a/src/video_core/vulkan_common/vulkan_debug_callback.cpp
+++ b/src/video_core/vulkan_common/vulkan_debug_callback.cpp
@@ -7,10 +7,10 @@
namespace Vulkan {
namespace {
-VkBool32 Callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity,
- VkDebugUtilsMessageTypeFlagsEXT type,
- const VkDebugUtilsMessengerCallbackDataEXT* data,
- [[maybe_unused]] void* user_data) {
+VkBool32 DebugUtilCallback(VkDebugUtilsMessageSeverityFlagBitsEXT severity,
+ VkDebugUtilsMessageTypeFlagsEXT type,
+ const VkDebugUtilsMessengerCallbackDataEXT* data,
+ [[maybe_unused]] void* user_data) {
// Skip logging known false-positive validation errors
switch (static_cast<u32>(data->messageIdNumber)) {
#ifdef ANDROID
@@ -62,9 +62,26 @@ VkBool32 Callback(VkDebugUtilsMessageSeverityFlagBitsEXT severity,
}
return VK_FALSE;
}
+
+VkBool32 DebugReportCallback(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType,
+ uint64_t object, size_t location, int32_t messageCode,
+ const char* pLayerPrefix, const char* pMessage, void* pUserData) {
+ const VkDebugReportFlagBitsEXT severity = static_cast<VkDebugReportFlagBitsEXT>(flags);
+ const std::string_view message{pMessage};
+ if (severity & VK_DEBUG_REPORT_ERROR_BIT_EXT) {
+ LOG_CRITICAL(Render_Vulkan, "{}", message);
+ } else if (severity & VK_DEBUG_REPORT_WARNING_BIT_EXT) {
+ LOG_WARNING(Render_Vulkan, "{}", message);
+ } else if (severity & VK_DEBUG_REPORT_INFORMATION_BIT_EXT) {
+ LOG_INFO(Render_Vulkan, "{}", message);
+ } else if (severity & VK_DEBUG_REPORT_DEBUG_BIT_EXT) {
+ LOG_DEBUG(Render_Vulkan, "{}", message);
+ }
+ return VK_FALSE;
+}
} // Anonymous namespace
-vk::DebugUtilsMessenger CreateDebugCallback(const vk::Instance& instance) {
+vk::DebugUtilsMessenger CreateDebugUtilsCallback(const vk::Instance& instance) {
return instance.CreateDebugUtilsMessenger(VkDebugUtilsMessengerCreateInfoEXT{
.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT,
.pNext = nullptr,
@@ -76,7 +93,18 @@ vk::DebugUtilsMessenger CreateDebugCallback(const vk::Instance& instance) {
.messageType = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT |
VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT,
- .pfnUserCallback = Callback,
+ .pfnUserCallback = DebugUtilCallback,
+ .pUserData = nullptr,
+ });
+}
+
+vk::DebugReportCallback CreateDebugReportCallback(const vk::Instance& instance) {
+ return instance.CreateDebugReportCallback({
+ .sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
+ .pNext = nullptr,
+ .flags = VK_DEBUG_REPORT_DEBUG_BIT_EXT | VK_DEBUG_REPORT_INFORMATION_BIT_EXT |
+ VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT,
+ .pfnCallback = DebugReportCallback,
.pUserData = nullptr,
});
}
diff --git a/src/video_core/vulkan_common/vulkan_debug_callback.h b/src/video_core/vulkan_common/vulkan_debug_callback.h
index 71b1f69ec..a8af7b406 100644
--- a/src/video_core/vulkan_common/vulkan_debug_callback.h
+++ b/src/video_core/vulkan_common/vulkan_debug_callback.h
@@ -7,6 +7,8 @@
namespace Vulkan {
-vk::DebugUtilsMessenger CreateDebugCallback(const vk::Instance& instance);
+vk::DebugUtilsMessenger CreateDebugUtilsCallback(const vk::Instance& instance);
+
+vk::DebugReportCallback CreateDebugReportCallback(const vk::Instance& instance);
} // namespace Vulkan
diff --git a/src/video_core/vulkan_common/vulkan_device.cpp b/src/video_core/vulkan_common/vulkan_device.cpp
index dcedf4425..421e71e5a 100644
--- a/src/video_core/vulkan_common/vulkan_device.cpp
+++ b/src/video_core/vulkan_common/vulkan_device.cpp
@@ -22,6 +22,8 @@
#include <adrenotools/bcenabler.h>
#endif
+#include <vk_mem_alloc.h>
+
namespace Vulkan {
using namespace Common::Literals;
namespace {
@@ -316,6 +318,7 @@ NvidiaArchitecture GetNvidiaArchitecture(vk::PhysicalDevice physical,
std::vector<const char*> ExtensionListForVulkan(
const std::set<std::string, std::less<>>& extensions) {
std::vector<const char*> output;
+ output.reserve(extensions.size());
for (const auto& extension : extensions) {
output.push_back(extension.c_str());
}
@@ -346,7 +349,7 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
const bool is_s8gen2 = device_id == 0x43050a01;
const bool is_arm = driver_id == VK_DRIVER_ID_ARM_PROPRIETARY;
- if ((is_mvk || is_qualcomm || is_turnip) && !is_suitable) {
+ if ((is_mvk || is_qualcomm || is_turnip || is_arm) && !is_suitable) {
LOG_WARNING(Render_Vulkan, "Unsuitable driver, continuing anyway");
} else if (!is_suitable) {
throw vk::Exception(VK_ERROR_INCOMPATIBLE_DRIVER);
@@ -525,6 +528,14 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
}
sets_per_pool = 64;
+ if (extensions.extended_dynamic_state3 && is_amd_driver &&
+ properties.properties.driverVersion >= VK_MAKE_API_VERSION(0, 2, 0, 270)) {
+ LOG_WARNING(Render_Vulkan,
+ "AMD drivers after 23.5.2 have broken extendedDynamicState3ColorBlendEquation");
+ features.extended_dynamic_state3.extendedDynamicState3ColorBlendEnable = false;
+ features.extended_dynamic_state3.extendedDynamicState3ColorBlendEquation = false;
+ dynamic_state3_blending = false;
+ }
if (is_amd_driver) {
// AMD drivers need a higher amount of Sets per Pool in certain circumstances like in XC2.
sets_per_pool = 96;
@@ -562,6 +573,9 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
LOG_WARNING(Render_Vulkan, "Intel proprietary drivers do not support MSAA image blits");
cant_blit_msaa = true;
}
+ has_broken_compute =
+ CheckBrokenCompute(properties.driver.driverID, properties.properties.driverVersion) &&
+ !Settings::values.enable_compute_pipelines.GetValue();
if (is_intel_anv || (is_qualcomm && !is_s8gen2)) {
LOG_WARNING(Render_Vulkan, "Driver does not support native BGR format");
must_emulate_bgr565 = true;
@@ -592,9 +606,31 @@ Device::Device(VkInstance instance_, vk::PhysicalDevice physical_, VkSurfaceKHR
graphics_queue = logical.GetQueue(graphics_family);
present_queue = logical.GetQueue(present_family);
+
+ VmaVulkanFunctions functions{};
+ functions.vkGetInstanceProcAddr = dld.vkGetInstanceProcAddr;
+ functions.vkGetDeviceProcAddr = dld.vkGetDeviceProcAddr;
+
+ const VmaAllocatorCreateInfo allocator_info = {
+ .flags = VMA_ALLOCATOR_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
+ .physicalDevice = physical,
+ .device = *logical,
+ .preferredLargeHeapBlockSize = 0,
+ .pAllocationCallbacks = nullptr,
+ .pDeviceMemoryCallbacks = nullptr,
+ .pHeapSizeLimit = nullptr,
+ .pVulkanFunctions = &functions,
+ .instance = instance,
+ .vulkanApiVersion = VK_API_VERSION_1_1,
+ .pTypeExternalMemoryHandleTypes = nullptr,
+ };
+
+ vk::Check(vmaCreateAllocator(&allocator_info, &allocator));
}
-Device::~Device() = default;
+Device::~Device() {
+ vmaDestroyAllocator(allocator);
+}
VkFormat Device::GetSupportedFormat(VkFormat wanted_format, VkFormatFeatureFlags wanted_usage,
FormatType format_type) const {
@@ -877,6 +913,10 @@ bool Device::GetSuitability(bool requires_swapchain) {
properties.driver.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES;
SetNext(next, properties.driver);
+ // Retrieve subgroup properties.
+ properties.subgroup_properties.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES;
+ SetNext(next, properties.subgroup_properties);
+
// Retrieve relevant extension properties.
if (extensions.shader_float_controls) {
properties.float_controls.sType =
diff --git a/src/video_core/vulkan_common/vulkan_device.h b/src/video_core/vulkan_common/vulkan_device.h
index 8c7e44fcb..1f17265d5 100644
--- a/src/video_core/vulkan_common/vulkan_device.h
+++ b/src/video_core/vulkan_common/vulkan_device.h
@@ -10,9 +10,12 @@
#include <vector>
#include "common/common_types.h"
+#include "common/logging/log.h"
#include "common/settings.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
+VK_DEFINE_HANDLE(VmaAllocator)
+
// Define all features which may be used by the implementation here.
// Vulkan version in the macro describes the minimum version required for feature availability.
// If the Vulkan version is lower than the required version, the named extension is required.
@@ -198,6 +201,11 @@ public:
return dld;
}
+ /// Returns the VMA allocator.
+ VmaAllocator GetAllocator() const {
+ return allocator;
+ }
+
/// Returns the logical device.
const vk::Device& GetLogical() const {
return logical;
@@ -285,6 +293,11 @@ public:
return features.features.textureCompressionASTC_LDR;
}
+ /// Returns true if BCn is natively supported.
+ bool IsOptimalBcnSupported() const {
+ return features.features.textureCompressionBC;
+ }
+
/// Returns true if descriptor aliasing is natively supported.
bool IsDescriptorAliasingSupported() const {
return GetDriverID() != VK_DRIVER_ID_QUALCOMM_PROPRIETARY;
@@ -315,6 +328,11 @@ public:
return properties.subgroup_size_control.requiredSubgroupSizeStages & stage;
}
+ /// Returns true if the device supports the provided subgroup feature.
+ bool IsSubgroupFeatureSupported(VkSubgroupFeatureFlagBits feature) const {
+ return properties.subgroup_properties.supportedOperations & feature;
+ }
+
/// Returns the maximum number of push descriptors.
u32 MaxPushDescriptors() const {
return properties.push_descriptor.maxPushDescriptors;
@@ -380,6 +398,11 @@ public:
return extensions.swapchain_mutable_format;
}
+ /// Returns true if VK_KHR_shader_float_controls is enabled.
+ bool IsKhrShaderFloatControlsSupported() const {
+ return extensions.shader_float_controls;
+ }
+
/// Returns true if the device supports VK_KHR_workgroup_memory_explicit_layout.
bool IsKhrWorkgroupMemoryExplicitLayoutSupported() const {
return extensions.workgroup_memory_explicit_layout;
@@ -405,6 +428,11 @@ public:
return extensions.sampler_filter_minmax;
}
+ /// Returns true if the device supports VK_EXT_shader_stencil_export.
+ bool IsExtShaderStencilExportSupported() const {
+ return extensions.shader_stencil_export;
+ }
+
/// Returns true if the device supports VK_EXT_depth_range_unrestricted.
bool IsExtDepthRangeUnrestrictedSupported() const {
return extensions.depth_range_unrestricted;
@@ -474,9 +502,9 @@ public:
return extensions.vertex_input_dynamic_state;
}
- /// Returns true if the device supports VK_EXT_shader_stencil_export.
- bool IsExtShaderStencilExportSupported() const {
- return extensions.shader_stencil_export;
+ /// Returns true if the device supports VK_EXT_shader_demote_to_helper_invocation
+ bool IsExtShaderDemoteToHelperInvocationSupported() const {
+ return extensions.shader_demote_to_helper_invocation;
}
/// Returns true if the device supports VK_EXT_conservative_rasterization.
@@ -510,12 +538,17 @@ public:
if (extensions.spirv_1_4) {
return 0x00010400U;
}
- return 0x00010000U;
+ return 0x00010300U;
}
/// Returns true when a known debugging tool is attached.
bool HasDebuggingToolAttached() const {
- return has_renderdoc || has_nsight_graphics || Settings::values.renderer_debug.GetValue();
+ return has_renderdoc || has_nsight_graphics;
+ }
+
+ /// @returns True if compute pipelines can cause crashing.
+ bool HasBrokenCompute() const {
+ return has_broken_compute;
}
/// Returns true when the device does not properly support cube compatibility.
@@ -575,10 +608,30 @@ public:
return properties.properties.limits.maxVertexInputBindings;
}
+ u32 GetMaxViewports() const {
+ return properties.properties.limits.maxViewports;
+ }
+
bool SupportsConditionalBarriers() const {
return supports_conditional_barriers;
}
+ [[nodiscard]] static constexpr bool CheckBrokenCompute(VkDriverId driver_id,
+ u32 driver_version) {
+ if (driver_id == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
+ const u32 major = VK_API_VERSION_MAJOR(driver_version);
+ const u32 minor = VK_API_VERSION_MINOR(driver_version);
+ const u32 patch = VK_API_VERSION_PATCH(driver_version);
+ if (major == 0 && minor == 405 && patch < 286) {
+ LOG_WARNING(
+ Render_Vulkan,
+ "Intel proprietary drivers 0.405.0 until 0.405.286 have broken compute");
+ return true;
+ }
+ }
+ return false;
+ }
+
private:
/// Checks if the physical device is suitable and configures the object state
/// with all necessary info about its properties.
@@ -608,6 +661,7 @@ private:
private:
VkInstance instance; ///< Vulkan instance.
+ VmaAllocator allocator; ///< VMA allocator.
vk::DeviceDispatch dld; ///< Device function pointers.
vk::PhysicalDevice physical; ///< Physical device.
vk::Device logical; ///< Logical device.
@@ -650,6 +704,7 @@ private:
struct Properties {
VkPhysicalDeviceDriverProperties driver{};
+ VkPhysicalDeviceSubgroupProperties subgroup_properties{};
VkPhysicalDeviceFloatControlsProperties float_controls{};
VkPhysicalDevicePushDescriptorPropertiesKHR push_descriptor{};
VkPhysicalDeviceSubgroupSizeControlProperties subgroup_size_control{};
@@ -672,6 +727,7 @@ private:
bool is_integrated{}; ///< Is GPU an iGPU.
bool is_virtual{}; ///< Is GPU a virtual GPU.
bool is_non_gpu{}; ///< Is SoftwareRasterizer, FPGA, non-GPU device.
+ bool has_broken_compute{}; ///< Compute shaders can cause crashes
bool has_broken_cube_compatibility{}; ///< Has broken cube compatibility bit
bool has_renderdoc{}; ///< Has RenderDoc attached
bool has_nsight_graphics{}; ///< Has Nsight Graphics attached
diff --git a/src/video_core/vulkan_common/vulkan_instance.cpp b/src/video_core/vulkan_common/vulkan_instance.cpp
index b6d83e446..7624a9b32 100644
--- a/src/video_core/vulkan_common/vulkan_instance.cpp
+++ b/src/video_core/vulkan_common/vulkan_instance.cpp
@@ -31,10 +31,34 @@
namespace Vulkan {
namespace {
+
+[[nodiscard]] bool AreExtensionsSupported(const vk::InstanceDispatch& dld,
+ std::span<const char* const> extensions) {
+ const std::optional properties = vk::EnumerateInstanceExtensionProperties(dld);
+ if (!properties) {
+ LOG_ERROR(Render_Vulkan, "Failed to query extension properties");
+ return false;
+ }
+ for (const char* extension : extensions) {
+ const auto it = std::ranges::find_if(*properties, [extension](const auto& prop) {
+ return std::strcmp(extension, prop.extensionName) == 0;
+ });
+ if (it == properties->end()) {
+ LOG_ERROR(Render_Vulkan, "Required instance extension {} is not available", extension);
+ return false;
+ }
+ }
+ return true;
+}
+
[[nodiscard]] std::vector<const char*> RequiredExtensions(
- Core::Frontend::WindowSystemType window_type, bool enable_validation) {
+ const vk::InstanceDispatch& dld, Core::Frontend::WindowSystemType window_type,
+ bool enable_validation) {
std::vector<const char*> extensions;
extensions.reserve(6);
+#ifdef __APPLE__
+ extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
+#endif
switch (window_type) {
case Core::Frontend::WindowSystemType::Headless:
break;
@@ -66,35 +90,14 @@ namespace {
extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
}
if (enable_validation) {
- extensions.push_back(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
+ const bool debug_utils =
+ AreExtensionsSupported(dld, std::array{VK_EXT_DEBUG_UTILS_EXTENSION_NAME});
+ extensions.push_back(debug_utils ? VK_EXT_DEBUG_UTILS_EXTENSION_NAME
+ : VK_EXT_DEBUG_REPORT_EXTENSION_NAME);
}
- extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
-
-#ifdef __APPLE__
- extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
-#endif
return extensions;
}
-[[nodiscard]] bool AreExtensionsSupported(const vk::InstanceDispatch& dld,
- std::span<const char* const> extensions) {
- const std::optional properties = vk::EnumerateInstanceExtensionProperties(dld);
- if (!properties) {
- LOG_ERROR(Render_Vulkan, "Failed to query extension properties");
- return false;
- }
- for (const char* extension : extensions) {
- const auto it = std::ranges::find_if(*properties, [extension](const auto& prop) {
- return std::strcmp(extension, prop.extensionName) == 0;
- });
- if (it == properties->end()) {
- LOG_ERROR(Render_Vulkan, "Required instance extension {} is not available", extension);
- return false;
- }
- }
- return true;
-}
-
[[nodiscard]] std::vector<const char*> Layers(bool enable_validation) {
std::vector<const char*> layers;
if (enable_validation) {
@@ -138,7 +141,8 @@ vk::Instance CreateInstance(const Common::DynamicLibrary& library, vk::InstanceD
LOG_ERROR(Render_Vulkan, "Failed to load Vulkan function pointers");
throw vk::Exception(VK_ERROR_INITIALIZATION_FAILED);
}
- const std::vector<const char*> extensions = RequiredExtensions(window_type, enable_validation);
+ const std::vector<const char*> extensions =
+ RequiredExtensions(dld, window_type, enable_validation);
if (!AreExtensionsSupported(dld, extensions)) {
throw vk::Exception(VK_ERROR_EXTENSION_NOT_PRESENT);
}
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
index e28a556f8..a2ef0efa4 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.cpp
@@ -6,8 +6,6 @@
#include <optional>
#include <vector>
-#include <glad/glad.h>
-
#include "common/alignment.h"
#include "common/assert.h"
#include "common/common_types.h"
@@ -17,6 +15,8 @@
#include "video_core/vulkan_common/vulkan_memory_allocator.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
+#include <vk_mem_alloc.h>
+
namespace Vulkan {
namespace {
struct Range {
@@ -49,22 +49,45 @@ struct Range {
case MemoryUsage::Download:
return VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT |
VK_MEMORY_PROPERTY_HOST_CACHED_BIT;
+ case MemoryUsage::Stream:
+ return VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT |
+ VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
}
ASSERT_MSG(false, "Invalid memory usage={}", usage);
return VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
}
-constexpr VkExportMemoryAllocateInfo EXPORT_ALLOCATE_INFO{
- .sType = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
- .pNext = nullptr,
-#ifdef _WIN32
- .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
-#elif __unix__
- .handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
-#else
- .handleTypes = 0,
-#endif
-};
+[[nodiscard]] VkMemoryPropertyFlags MemoryUsagePreferedVmaFlags(MemoryUsage usage) {
+ return usage != MemoryUsage::DeviceLocal ? VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
+ : VkMemoryPropertyFlagBits{};
+}
+
+[[nodiscard]] VmaAllocationCreateFlags MemoryUsageVmaFlags(MemoryUsage usage) {
+ switch (usage) {
+ case MemoryUsage::Upload:
+ case MemoryUsage::Stream:
+ return VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;
+ case MemoryUsage::Download:
+ return VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT;
+ case MemoryUsage::DeviceLocal:
+ return VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT |
+ VMA_ALLOCATION_CREATE_HOST_ACCESS_ALLOW_TRANSFER_INSTEAD_BIT;
+ }
+ return {};
+}
+
+[[nodiscard]] VmaMemoryUsage MemoryUsageVma(MemoryUsage usage) {
+ switch (usage) {
+ case MemoryUsage::DeviceLocal:
+ case MemoryUsage::Stream:
+ return VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE;
+ case MemoryUsage::Upload:
+ case MemoryUsage::Download:
+ return VMA_MEMORY_USAGE_AUTO_PREFER_HOST;
+ }
+ return VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE;
+}
+
} // Anonymous namespace
class MemoryAllocation {
@@ -74,14 +97,6 @@ public:
: allocator{allocator_}, memory{std::move(memory_)}, allocation_size{allocation_size_},
property_flags{properties}, shifted_memory_type{1U << type} {}
-#if defined(_WIN32) || defined(__unix__)
- ~MemoryAllocation() {
- if (owning_opengl_handle != 0) {
- glDeleteMemoryObjectsEXT(1, &owning_opengl_handle);
- }
- }
-#endif
-
MemoryAllocation& operator=(const MemoryAllocation&) = delete;
MemoryAllocation(const MemoryAllocation&) = delete;
@@ -120,31 +135,6 @@ public:
return memory_mapped_span;
}
-#ifdef _WIN32
- [[nodiscard]] u32 ExportOpenGLHandle() {
- if (!owning_opengl_handle) {
- glCreateMemoryObjectsEXT(1, &owning_opengl_handle);
- glImportMemoryWin32HandleEXT(owning_opengl_handle, allocation_size,
- GL_HANDLE_TYPE_OPAQUE_WIN32_EXT,
- memory.GetMemoryWin32HandleKHR());
- }
- return owning_opengl_handle;
- }
-#elif __unix__
- [[nodiscard]] u32 ExportOpenGLHandle() {
- if (!owning_opengl_handle) {
- glCreateMemoryObjectsEXT(1, &owning_opengl_handle);
- glImportMemoryFdEXT(owning_opengl_handle, allocation_size, GL_HANDLE_TYPE_OPAQUE_FD_EXT,
- memory.GetMemoryFdKHR());
- }
- return owning_opengl_handle;
- }
-#else
- [[nodiscard]] u32 ExportOpenGLHandle() {
- return 0;
- }
-#endif
-
/// Returns whether this allocation is compatible with the arguments.
[[nodiscard]] bool IsCompatible(VkMemoryPropertyFlags flags, u32 type_mask) const {
return (flags & property_flags) == flags && (type_mask & shifted_memory_type) != 0;
@@ -182,9 +172,6 @@ private:
const u32 shifted_memory_type; ///< Shifted Vulkan memory type.
std::vector<Range> commits; ///< All commit ranges done from this allocation.
std::span<u8> memory_mapped_span; ///< Memory mapped span. Empty if not queried before.
-#if defined(_WIN32) || defined(__unix__)
- u32 owning_opengl_handle{}; ///< Owning OpenGL memory object handle.
-#endif
};
MemoryCommit::MemoryCommit(MemoryAllocation* allocation_, VkDeviceMemory memory_, u64 begin_,
@@ -216,24 +203,70 @@ std::span<u8> MemoryCommit::Map() {
return span;
}
-u32 MemoryCommit::ExportOpenGLHandle() const {
- return allocation->ExportOpenGLHandle();
-}
-
void MemoryCommit::Release() {
if (allocation) {
allocation->Free(begin);
}
}
-MemoryAllocator::MemoryAllocator(const Device& device_, bool export_allocations_)
- : device{device_}, properties{device_.GetPhysical().GetMemoryProperties().memoryProperties},
- export_allocations{export_allocations_},
+MemoryAllocator::MemoryAllocator(const Device& device_)
+ : device{device_}, allocator{device.GetAllocator()},
+ properties{device_.GetPhysical().GetMemoryProperties().memoryProperties},
buffer_image_granularity{
device_.GetPhysical().GetProperties().limits.bufferImageGranularity} {}
MemoryAllocator::~MemoryAllocator() = default;
+vk::Image MemoryAllocator::CreateImage(const VkImageCreateInfo& ci) const {
+ const VmaAllocationCreateInfo alloc_ci = {
+ .flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT,
+ .usage = VMA_MEMORY_USAGE_AUTO_PREFER_DEVICE,
+ .requiredFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
+ .preferredFlags = 0,
+ .memoryTypeBits = 0,
+ .pool = VK_NULL_HANDLE,
+ .pUserData = nullptr,
+ .priority = 0.f,
+ };
+
+ VkImage handle{};
+ VmaAllocation allocation{};
+
+ vk::Check(vmaCreateImage(allocator, &ci, &alloc_ci, &handle, &allocation, nullptr));
+
+ return vk::Image(handle, *device.GetLogical(), allocator, allocation,
+ device.GetDispatchLoader());
+}
+
+vk::Buffer MemoryAllocator::CreateBuffer(const VkBufferCreateInfo& ci, MemoryUsage usage) const {
+ const VmaAllocationCreateInfo alloc_ci = {
+ .flags = VMA_ALLOCATION_CREATE_WITHIN_BUDGET_BIT | VMA_ALLOCATION_CREATE_MAPPED_BIT |
+ MemoryUsageVmaFlags(usage),
+ .usage = MemoryUsageVma(usage),
+ .requiredFlags = 0,
+ .preferredFlags = MemoryUsagePreferedVmaFlags(usage),
+ .memoryTypeBits = 0,
+ .pool = VK_NULL_HANDLE,
+ .pUserData = nullptr,
+ .priority = 0.f,
+ };
+
+ VkBuffer handle{};
+ VmaAllocationInfo alloc_info{};
+ VmaAllocation allocation{};
+ VkMemoryPropertyFlags property_flags{};
+
+ vk::Check(vmaCreateBuffer(allocator, &ci, &alloc_ci, &handle, &allocation, &alloc_info));
+ vmaGetAllocationMemoryProperties(allocator, allocation, &property_flags);
+
+ u8* data = reinterpret_cast<u8*>(alloc_info.pMappedData);
+ const std::span<u8> mapped_data = data ? std::span<u8>{data, ci.size} : std::span<u8>{};
+ const bool is_coherent = property_flags & VK_MEMORY_PROPERTY_HOST_COHERENT_BIT;
+
+ return vk::Buffer(handle, *device.GetLogical(), allocator, allocation, mapped_data, is_coherent,
+ device.GetDispatchLoader());
+}
+
MemoryCommit MemoryAllocator::Commit(const VkMemoryRequirements& requirements, MemoryUsage usage) {
// Find the fastest memory flags we can afford with the current requirements
const u32 type_mask = requirements.memoryTypeBits;
@@ -253,25 +286,11 @@ MemoryCommit MemoryAllocator::Commit(const VkMemoryRequirements& requirements, M
return TryCommit(requirements, flags).value();
}
-MemoryCommit MemoryAllocator::Commit(const vk::Buffer& buffer, MemoryUsage usage) {
- auto commit = Commit(device.GetLogical().GetBufferMemoryRequirements(*buffer), usage);
- buffer.BindMemory(commit.Memory(), commit.Offset());
- return commit;
-}
-
-MemoryCommit MemoryAllocator::Commit(const vk::Image& image, MemoryUsage usage) {
- VkMemoryRequirements requirements = device.GetLogical().GetImageMemoryRequirements(*image);
- requirements.size = Common::AlignUp(requirements.size, buffer_image_granularity);
- auto commit = Commit(requirements, usage);
- image.BindMemory(commit.Memory(), commit.Offset());
- return commit;
-}
-
bool MemoryAllocator::TryAllocMemory(VkMemoryPropertyFlags flags, u32 type_mask, u64 size) {
const u32 type = FindType(flags, type_mask).value();
vk::DeviceMemory memory = device.GetLogical().TryAllocateMemory({
.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO,
- .pNext = export_allocations ? &EXPORT_ALLOCATE_INFO : nullptr,
+ .pNext = nullptr,
.allocationSize = size,
.memoryTypeIndex = type,
});
@@ -342,16 +361,4 @@ std::optional<u32> MemoryAllocator::FindType(VkMemoryPropertyFlags flags, u32 ty
return std::nullopt;
}
-bool IsHostVisible(MemoryUsage usage) noexcept {
- switch (usage) {
- case MemoryUsage::DeviceLocal:
- return false;
- case MemoryUsage::Upload:
- case MemoryUsage::Download:
- return true;
- }
- ASSERT_MSG(false, "Invalid memory usage={}", usage);
- return false;
-}
-
} // namespace Vulkan
diff --git a/src/video_core/vulkan_common/vulkan_memory_allocator.h b/src/video_core/vulkan_common/vulkan_memory_allocator.h
index a5bff03fe..f449bc8d0 100644
--- a/src/video_core/vulkan_common/vulkan_memory_allocator.h
+++ b/src/video_core/vulkan_common/vulkan_memory_allocator.h
@@ -9,6 +9,8 @@
#include "common/common_types.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
+VK_DEFINE_HANDLE(VmaAllocator)
+
namespace Vulkan {
class Device;
@@ -17,9 +19,11 @@ class MemoryAllocation;
/// Hints and requirements for the backing memory type of a commit
enum class MemoryUsage {
- DeviceLocal, ///< Hints device local usages, fastest memory type to read and write from the GPU
+ DeviceLocal, ///< Requests device local host visible buffer, falling back to device local
+ ///< memory.
Upload, ///< Requires a host visible memory type optimized for CPU to GPU uploads
Download, ///< Requires a host visible memory type optimized for GPU to CPU readbacks
+ Stream, ///< Requests device local host visible buffer, falling back host memory.
};
/// Ownership handle of a memory commitment.
@@ -41,9 +45,6 @@ public:
/// It will map the backing allocation if it hasn't been mapped before.
std::span<u8> Map();
- /// Returns an non-owning OpenGL handle, creating one if it doesn't exist.
- u32 ExportOpenGLHandle() const;
-
/// Returns the Vulkan memory handler.
VkDeviceMemory Memory() const {
return memory;
@@ -74,16 +75,19 @@ public:
* Construct memory allocator
*
* @param device_ Device to allocate from
- * @param export_allocations_ True when allocations have to be exported
*
* @throw vk::Exception on failure
*/
- explicit MemoryAllocator(const Device& device_, bool export_allocations_);
+ explicit MemoryAllocator(const Device& device_);
~MemoryAllocator();
MemoryAllocator& operator=(const MemoryAllocator&) = delete;
MemoryAllocator(const MemoryAllocator&) = delete;
+ vk::Image CreateImage(const VkImageCreateInfo& ci) const;
+
+ vk::Buffer CreateBuffer(const VkBufferCreateInfo& ci, MemoryUsage usage) const;
+
/**
* Commits a memory with the specified requirements.
*
@@ -97,9 +101,6 @@ public:
/// Commits memory required by the buffer and binds it.
MemoryCommit Commit(const vk::Buffer& buffer, MemoryUsage usage);
- /// Commits memory required by the image and binds it.
- MemoryCommit Commit(const vk::Image& image, MemoryUsage usage);
-
private:
/// Tries to allocate a chunk of memory.
bool TryAllocMemory(VkMemoryPropertyFlags flags, u32 type_mask, u64 size);
@@ -117,15 +118,12 @@ private:
/// Returns index to the fastest memory type compatible with the passed requirements.
std::optional<u32> FindType(VkMemoryPropertyFlags flags, u32 type_mask) const;
- const Device& device; ///< Device handle.
- const VkPhysicalDeviceMemoryProperties properties; ///< Physical device properties.
- const bool export_allocations; ///< True when memory allocations have to be exported.
+ const Device& device; ///< Device handle.
+ VmaAllocator allocator; ///< Vma allocator.
+ const VkPhysicalDeviceMemoryProperties properties; ///< Physical device properties.
std::vector<std::unique_ptr<MemoryAllocation>> allocations; ///< Current allocations.
VkDeviceSize buffer_image_granularity; // The granularity for adjacent offsets between buffers
// and optimal images
};
-/// Returns true when a memory usage is guaranteed to be host visible.
-bool IsHostVisible(MemoryUsage usage) noexcept;
-
} // namespace Vulkan
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.cpp b/src/video_core/vulkan_common/vulkan_wrapper.cpp
index 336f53700..2fa29793a 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.cpp
+++ b/src/video_core/vulkan_common/vulkan_wrapper.cpp
@@ -12,6 +12,8 @@
#include "video_core/vulkan_common/vulkan_wrapper.h"
+#include <vk_mem_alloc.h>
+
namespace Vulkan::vk {
namespace {
@@ -257,7 +259,9 @@ bool Load(VkInstance instance, InstanceDispatch& dld) noexcept {
// These functions may fail to load depending on the enabled extensions.
// Don't return a failure on these.
X(vkCreateDebugUtilsMessengerEXT);
+ X(vkCreateDebugReportCallbackEXT);
X(vkDestroyDebugUtilsMessengerEXT);
+ X(vkDestroyDebugReportCallbackEXT);
X(vkDestroySurfaceKHR);
X(vkGetPhysicalDeviceFeatures2);
X(vkGetPhysicalDeviceProperties2);
@@ -479,6 +483,11 @@ void Destroy(VkInstance instance, VkDebugUtilsMessengerEXT handle,
dld.vkDestroyDebugUtilsMessengerEXT(instance, handle, nullptr);
}
+void Destroy(VkInstance instance, VkDebugReportCallbackEXT handle,
+ const InstanceDispatch& dld) noexcept {
+ dld.vkDestroyDebugReportCallbackEXT(instance, handle, nullptr);
+}
+
void Destroy(VkInstance instance, VkSurfaceKHR handle, const InstanceDispatch& dld) noexcept {
dld.vkDestroySurfaceKHR(instance, handle, nullptr);
}
@@ -547,24 +556,47 @@ DebugUtilsMessenger Instance::CreateDebugUtilsMessenger(
return DebugUtilsMessenger(object, handle, *dld);
}
-void Buffer::BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const {
- Check(dld->vkBindBufferMemory(owner, handle, memory, offset));
+DebugReportCallback Instance::CreateDebugReportCallback(
+ const VkDebugReportCallbackCreateInfoEXT& create_info) const {
+ VkDebugReportCallbackEXT object;
+ Check(dld->vkCreateDebugReportCallbackEXT(handle, &create_info, nullptr, &object));
+ return DebugReportCallback(object, handle, *dld);
}
-void Buffer::SetObjectNameEXT(const char* name) const {
- SetObjectName(dld, owner, handle, VK_OBJECT_TYPE_BUFFER, name);
+void Image::SetObjectNameEXT(const char* name) const {
+ SetObjectName(dld, owner, handle, VK_OBJECT_TYPE_IMAGE, name);
}
-void BufferView::SetObjectNameEXT(const char* name) const {
- SetObjectName(dld, owner, handle, VK_OBJECT_TYPE_BUFFER_VIEW, name);
+void Image::Release() const noexcept {
+ if (handle) {
+ vmaDestroyImage(allocator, handle, allocation);
+ }
}
-void Image::BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const {
- Check(dld->vkBindImageMemory(owner, handle, memory, offset));
+void Buffer::Flush() const {
+ if (!is_coherent) {
+ vmaFlushAllocation(allocator, allocation, 0, VK_WHOLE_SIZE);
+ }
}
-void Image::SetObjectNameEXT(const char* name) const {
- SetObjectName(dld, owner, handle, VK_OBJECT_TYPE_IMAGE, name);
+void Buffer::Invalidate() const {
+ if (!is_coherent) {
+ vmaInvalidateAllocation(allocator, allocation, 0, VK_WHOLE_SIZE);
+ }
+}
+
+void Buffer::SetObjectNameEXT(const char* name) const {
+ SetObjectName(dld, owner, handle, VK_OBJECT_TYPE_BUFFER, name);
+}
+
+void Buffer::Release() const noexcept {
+ if (handle) {
+ vmaDestroyBuffer(allocator, handle, allocation);
+ }
+}
+
+void BufferView::SetObjectNameEXT(const char* name) const {
+ SetObjectName(dld, owner, handle, VK_OBJECT_TYPE_BUFFER_VIEW, name);
}
void ImageView::SetObjectNameEXT(const char* name) const {
@@ -701,24 +733,12 @@ Queue Device::GetQueue(u32 family_index) const noexcept {
return Queue(queue, *dld);
}
-Buffer Device::CreateBuffer(const VkBufferCreateInfo& ci) const {
- VkBuffer object;
- Check(dld->vkCreateBuffer(handle, &ci, nullptr, &object));
- return Buffer(object, handle, *dld);
-}
-
BufferView Device::CreateBufferView(const VkBufferViewCreateInfo& ci) const {
VkBufferView object;
Check(dld->vkCreateBufferView(handle, &ci, nullptr, &object));
return BufferView(object, handle, *dld);
}
-Image Device::CreateImage(const VkImageCreateInfo& ci) const {
- VkImage object;
- Check(dld->vkCreateImage(handle, &ci, nullptr, &object));
- return Image(object, handle, *dld);
-}
-
ImageView Device::CreateImageView(const VkImageViewCreateInfo& ci) const {
VkImageView object;
Check(dld->vkCreateImageView(handle, &ci, nullptr, &object));
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h
index 4ff328a21..b5e70fcd4 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.h
+++ b/src/video_core/vulkan_common/vulkan_wrapper.h
@@ -32,6 +32,9 @@
#pragma warning(disable : 26812) // Disable prefer enum class over enum
#endif
+VK_DEFINE_HANDLE(VmaAllocator)
+VK_DEFINE_HANDLE(VmaAllocation)
+
namespace Vulkan::vk {
/**
@@ -161,8 +164,10 @@ struct InstanceDispatch {
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties{};
PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT{};
+ PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT{};
PFN_vkCreateDevice vkCreateDevice{};
PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT{};
+ PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT{};
PFN_vkDestroyDevice vkDestroyDevice{};
PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR{};
PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties{};
@@ -363,6 +368,7 @@ void Destroy(VkDevice, VkSwapchainKHR, const DeviceDispatch&) noexcept;
void Destroy(VkDevice, VkSemaphore, const DeviceDispatch&) noexcept;
void Destroy(VkDevice, VkShaderModule, const DeviceDispatch&) noexcept;
void Destroy(VkInstance, VkDebugUtilsMessengerEXT, const InstanceDispatch&) noexcept;
+void Destroy(VkInstance, VkDebugReportCallbackEXT, const InstanceDispatch&) noexcept;
void Destroy(VkInstance, VkSurfaceKHR, const InstanceDispatch&) noexcept;
VkResult Free(VkDevice, VkDescriptorPool, Span<VkDescriptorSet>, const DeviceDispatch&) noexcept;
@@ -578,6 +584,7 @@ private:
};
using DebugUtilsMessenger = Handle<VkDebugUtilsMessengerEXT, VkInstance, InstanceDispatch>;
+using DebugReportCallback = Handle<VkDebugReportCallbackEXT, VkInstance, InstanceDispatch>;
using DescriptorSetLayout = Handle<VkDescriptorSetLayout, VkDevice, DeviceDispatch>;
using DescriptorUpdateTemplate = Handle<VkDescriptorUpdateTemplate, VkDevice, DeviceDispatch>;
using Pipeline = Handle<VkPipeline, VkDevice, DeviceDispatch>;
@@ -610,12 +617,149 @@ public:
DebugUtilsMessenger CreateDebugUtilsMessenger(
const VkDebugUtilsMessengerCreateInfoEXT& create_info) const;
+ /// Creates a debug report callback.
+ /// @throw Exception on creation failure.
+ DebugReportCallback CreateDebugReportCallback(
+ const VkDebugReportCallbackCreateInfoEXT& create_info) const;
+
/// Returns dispatch table.
const InstanceDispatch& Dispatch() const noexcept {
return *dld;
}
};
+class Image {
+public:
+ explicit Image(VkImage handle_, VkDevice owner_, VmaAllocator allocator_,
+ VmaAllocation allocation_, const DeviceDispatch& dld_) noexcept
+ : handle{handle_}, owner{owner_}, allocator{allocator_},
+ allocation{allocation_}, dld{&dld_} {}
+ Image() = default;
+
+ Image(const Image&) = delete;
+ Image& operator=(const Image&) = delete;
+
+ Image(Image&& rhs) noexcept
+ : handle{std::exchange(rhs.handle, nullptr)}, owner{rhs.owner}, allocator{rhs.allocator},
+ allocation{rhs.allocation}, dld{rhs.dld} {}
+
+ Image& operator=(Image&& rhs) noexcept {
+ Release();
+ handle = std::exchange(rhs.handle, nullptr);
+ owner = rhs.owner;
+ allocator = rhs.allocator;
+ allocation = rhs.allocation;
+ dld = rhs.dld;
+ return *this;
+ }
+
+ ~Image() noexcept {
+ Release();
+ }
+
+ VkImage operator*() const noexcept {
+ return handle;
+ }
+
+ void reset() noexcept {
+ Release();
+ handle = nullptr;
+ }
+
+ explicit operator bool() const noexcept {
+ return handle != nullptr;
+ }
+
+ void SetObjectNameEXT(const char* name) const;
+
+private:
+ void Release() const noexcept;
+
+ VkImage handle = nullptr;
+ VkDevice owner = nullptr;
+ VmaAllocator allocator = nullptr;
+ VmaAllocation allocation = nullptr;
+ const DeviceDispatch* dld = nullptr;
+};
+
+class Buffer {
+public:
+ explicit Buffer(VkBuffer handle_, VkDevice owner_, VmaAllocator allocator_,
+ VmaAllocation allocation_, std::span<u8> mapped_, bool is_coherent_,
+ const DeviceDispatch& dld_) noexcept
+ : handle{handle_}, owner{owner_}, allocator{allocator_},
+ allocation{allocation_}, mapped{mapped_}, is_coherent{is_coherent_}, dld{&dld_} {}
+ Buffer() = default;
+
+ Buffer(const Buffer&) = delete;
+ Buffer& operator=(const Buffer&) = delete;
+
+ Buffer(Buffer&& rhs) noexcept
+ : handle{std::exchange(rhs.handle, nullptr)}, owner{rhs.owner}, allocator{rhs.allocator},
+ allocation{rhs.allocation}, mapped{rhs.mapped},
+ is_coherent{rhs.is_coherent}, dld{rhs.dld} {}
+
+ Buffer& operator=(Buffer&& rhs) noexcept {
+ Release();
+ handle = std::exchange(rhs.handle, nullptr);
+ owner = rhs.owner;
+ allocator = rhs.allocator;
+ allocation = rhs.allocation;
+ mapped = rhs.mapped;
+ is_coherent = rhs.is_coherent;
+ dld = rhs.dld;
+ return *this;
+ }
+
+ ~Buffer() noexcept {
+ Release();
+ }
+
+ VkBuffer operator*() const noexcept {
+ return handle;
+ }
+
+ void reset() noexcept {
+ Release();
+ handle = nullptr;
+ }
+
+ explicit operator bool() const noexcept {
+ return handle != nullptr;
+ }
+
+ /// Returns the host mapped memory, an empty span otherwise.
+ std::span<u8> Mapped() noexcept {
+ return mapped;
+ }
+
+ std::span<const u8> Mapped() const noexcept {
+ return mapped;
+ }
+
+ /// Returns true if the buffer is mapped to the host.
+ bool IsHostVisible() const noexcept {
+ return !mapped.empty();
+ }
+
+ void Flush() const;
+
+ void Invalidate() const;
+
+ void SetObjectNameEXT(const char* name) const;
+
+private:
+ void Release() const noexcept;
+
+ VkBuffer handle = nullptr;
+ VkDevice owner = nullptr;
+ VmaAllocator allocator = nullptr;
+ VmaAllocation allocation = nullptr;
+ std::span<u8> mapped = {};
+ bool is_coherent = false;
+ const DeviceDispatch* dld = nullptr;
+};
+
class Queue {
public:
/// Construct an empty queue handle.
@@ -639,17 +783,6 @@ private:
const DeviceDispatch* dld = nullptr;
};
-class Buffer : public Handle<VkBuffer, VkDevice, DeviceDispatch> {
- using Handle<VkBuffer, VkDevice, DeviceDispatch>::Handle;
-
-public:
- /// Attaches a memory allocation.
- void BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const;
-
- /// Set object name.
- void SetObjectNameEXT(const char* name) const;
-};
-
class BufferView : public Handle<VkBufferView, VkDevice, DeviceDispatch> {
using Handle<VkBufferView, VkDevice, DeviceDispatch>::Handle;
@@ -658,17 +791,6 @@ public:
void SetObjectNameEXT(const char* name) const;
};
-class Image : public Handle<VkImage, VkDevice, DeviceDispatch> {
- using Handle<VkImage, VkDevice, DeviceDispatch>::Handle;
-
-public:
- /// Attaches a memory allocation.
- void BindMemory(VkDeviceMemory memory, VkDeviceSize offset) const;
-
- /// Set object name.
- void SetObjectNameEXT(const char* name) const;
-};
-
class ImageView : public Handle<VkImageView, VkDevice, DeviceDispatch> {
using Handle<VkImageView, VkDevice, DeviceDispatch>::Handle;
@@ -840,12 +962,8 @@ public:
Queue GetQueue(u32 family_index) const noexcept;
- Buffer CreateBuffer(const VkBufferCreateInfo& ci) const;
-
BufferView CreateBufferView(const VkBufferViewCreateInfo& ci) const;
- Image CreateImage(const VkImageCreateInfo& ci) const;
-
ImageView CreateImageView(const VkImageViewCreateInfo& ci) const;
Semaphore CreateSemaphore() const;
diff --git a/src/yuzu/CMakeLists.txt b/src/yuzu/CMakeLists.txt
index 733c296e4..fe98e3605 100644
--- a/src/yuzu/CMakeLists.txt
+++ b/src/yuzu/CMakeLists.txt
@@ -98,6 +98,9 @@ add_executable(yuzu
configuration/configure_input_profile_dialog.cpp
configuration/configure_input_profile_dialog.h
configuration/configure_input_profile_dialog.ui
+ configuration/configure_mouse_panning.cpp
+ configuration/configure_mouse_panning.h
+ configuration/configure_mouse_panning.ui
configuration/configure_motion_touch.cpp
configuration/configure_motion_touch.h
configuration/configure_motion_touch.ui
diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index cc6b6a25a..bdd1497b5 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -105,14 +105,12 @@ void EmuThread::run() {
std::unique_lock lk{m_should_run_mutex};
if (m_should_run) {
m_system.Run();
- m_is_running.store(true);
- m_is_running.notify_all();
+ m_stopped.Reset();
Common::CondvarWait(m_should_run_cv, lk, stop_token, [&] { return !m_should_run; });
} else {
m_system.Pause();
- m_is_running.store(false);
- m_is_running.notify_all();
+ m_stopped.Set();
EmulationPaused(lk);
Common::CondvarWait(m_should_run_cv, lk, stop_token, [&] { return m_should_run; });
diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h
index b7b9d4141..87b23df12 100644
--- a/src/yuzu/bootmanager.h
+++ b/src/yuzu/bootmanager.h
@@ -3,7 +3,6 @@
#pragma once
-#include <atomic>
#include <condition_variable>
#include <cstddef>
#include <memory>
@@ -88,7 +87,7 @@ public:
// Wait until paused, if pausing.
if (!should_run) {
- m_is_running.wait(true);
+ m_stopped.Wait();
}
}
@@ -97,7 +96,7 @@ public:
* @return True if the emulation thread is running, otherwise false
*/
bool IsRunning() const {
- return m_is_running.load() || m_should_run;
+ return m_should_run;
}
/**
@@ -118,7 +117,7 @@ private:
std::stop_source m_stop_source;
std::mutex m_should_run_mutex;
std::condition_variable_any m_should_run_cv;
- std::atomic<bool> m_is_running{false};
+ Common::Event m_stopped;
bool m_should_run{true};
signals:
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index bac9dff90..29467d380 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -351,6 +351,10 @@ void Config::ReadPlayerValue(std::size_t player_index) {
player_motions = default_param;
}
}
+
+ if (player_index == 0) {
+ ReadMousePanningValues();
+ }
}
void Config::ReadDebugValues() {
@@ -471,6 +475,7 @@ void Config::ReadControlValues() {
ReadKeyboardValues();
ReadMouseValues();
ReadTouchscreenValues();
+ ReadMousePanningValues();
ReadMotionTouchValues();
ReadHidbusValues();
ReadIrCameraValues();
@@ -481,8 +486,6 @@ void Config::ReadControlValues() {
Settings::values.enable_raw_input = false;
#endif
ReadBasicSetting(Settings::values.emulate_analog_keyboard);
- Settings::values.mouse_panning = false;
- ReadBasicSetting(Settings::values.mouse_panning_sensitivity);
ReadBasicSetting(Settings::values.enable_joycon_driver);
ReadBasicSetting(Settings::values.enable_procon_driver);
ReadBasicSetting(Settings::values.random_amiibo_id);
@@ -496,6 +499,16 @@ void Config::ReadControlValues() {
qt_config->endGroup();
}
+void Config::ReadMousePanningValues() {
+ ReadBasicSetting(Settings::values.mouse_panning);
+ ReadBasicSetting(Settings::values.mouse_panning_x_sensitivity);
+ ReadBasicSetting(Settings::values.mouse_panning_y_sensitivity);
+ ReadBasicSetting(Settings::values.mouse_panning_deadzone_x_counterweight);
+ ReadBasicSetting(Settings::values.mouse_panning_deadzone_y_counterweight);
+ ReadBasicSetting(Settings::values.mouse_panning_decay_strength);
+ ReadBasicSetting(Settings::values.mouse_panning_min_decay);
+}
+
void Config::ReadMotionTouchValues() {
int num_touch_from_button_maps =
qt_config->beginReadArray(QStringLiteral("touch_from_button_maps"));
@@ -761,6 +774,7 @@ void Config::ReadRendererValues() {
ReadGlobalSetting(Settings::values.use_vulkan_driver_pipeline_cache);
ReadGlobalSetting(Settings::values.enable_compute_pipelines);
ReadGlobalSetting(Settings::values.use_video_framerate);
+ ReadGlobalSetting(Settings::values.barrier_feedback_loops);
ReadGlobalSetting(Settings::values.bg_red);
ReadGlobalSetting(Settings::values.bg_green);
ReadGlobalSetting(Settings::values.bg_blue);
@@ -890,6 +904,7 @@ void Config::ReadUIValues() {
ReadBasicSetting(UISettings::values.pause_when_in_background);
ReadBasicSetting(UISettings::values.mute_when_in_background);
ReadBasicSetting(UISettings::values.hide_mouse);
+ ReadBasicSetting(UISettings::values.controller_applet_disabled);
ReadBasicSetting(UISettings::values.disable_web_applet);
qt_config->endGroup();
@@ -1063,6 +1078,10 @@ void Config::SavePlayerValue(std::size_t player_index) {
QString::fromStdString(player.motions[i]),
QString::fromStdString(default_param));
}
+
+ if (player_index == 0) {
+ SaveMousePanningValues();
+ }
}
void Config::SaveDebugValues() {
@@ -1099,6 +1118,16 @@ void Config::SaveTouchscreenValues() {
WriteSetting(QStringLiteral("touchscreen_diameter_y"), touchscreen.diameter_y, 15);
}
+void Config::SaveMousePanningValues() {
+ // Don't overwrite values.mouse_panning
+ WriteBasicSetting(Settings::values.mouse_panning_x_sensitivity);
+ WriteBasicSetting(Settings::values.mouse_panning_y_sensitivity);
+ WriteBasicSetting(Settings::values.mouse_panning_deadzone_x_counterweight);
+ WriteBasicSetting(Settings::values.mouse_panning_deadzone_y_counterweight);
+ WriteBasicSetting(Settings::values.mouse_panning_decay_strength);
+ WriteBasicSetting(Settings::values.mouse_panning_min_decay);
+}
+
void Config::SaveMotionTouchValues() {
WriteBasicSetting(Settings::values.touch_device);
WriteBasicSetting(Settings::values.touch_from_button_map_index);
@@ -1185,6 +1214,7 @@ void Config::SaveControlValues() {
SaveDebugValues();
SaveMouseValues();
SaveTouchscreenValues();
+ SaveMousePanningValues();
SaveMotionTouchValues();
SaveHidbusValues();
SaveIrCameraValues();
@@ -1199,7 +1229,6 @@ void Config::SaveControlValues() {
WriteBasicSetting(Settings::values.random_amiibo_id);
WriteBasicSetting(Settings::values.keyboard_enabled);
WriteBasicSetting(Settings::values.emulate_analog_keyboard);
- WriteBasicSetting(Settings::values.mouse_panning_sensitivity);
WriteBasicSetting(Settings::values.controller_navigation);
WriteBasicSetting(Settings::values.tas_enable);
@@ -1417,6 +1446,7 @@ void Config::SaveRendererValues() {
WriteGlobalSetting(Settings::values.use_vulkan_driver_pipeline_cache);
WriteGlobalSetting(Settings::values.enable_compute_pipelines);
WriteGlobalSetting(Settings::values.use_video_framerate);
+ WriteGlobalSetting(Settings::values.barrier_feedback_loops);
WriteGlobalSetting(Settings::values.bg_red);
WriteGlobalSetting(Settings::values.bg_green);
WriteGlobalSetting(Settings::values.bg_blue);
@@ -1522,6 +1552,7 @@ void Config::SaveUIValues() {
WriteBasicSetting(UISettings::values.pause_when_in_background);
WriteBasicSetting(UISettings::values.mute_when_in_background);
WriteBasicSetting(UISettings::values.hide_mouse);
+ WriteBasicSetting(UISettings::values.controller_applet_disabled);
WriteBasicSetting(UISettings::values.disable_web_applet);
qt_config->endGroup();
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h
index 0fd4baf6b..1211389d2 100644
--- a/src/yuzu/configuration/config.h
+++ b/src/yuzu/configuration/config.h
@@ -74,6 +74,7 @@ private:
void ReadKeyboardValues();
void ReadMouseValues();
void ReadTouchscreenValues();
+ void ReadMousePanningValues();
void ReadMotionTouchValues();
void ReadHidbusValues();
void ReadIrCameraValues();
@@ -104,6 +105,7 @@ private:
void SaveDebugValues();
void SaveMouseValues();
void SaveTouchscreenValues();
+ void SaveMousePanningValues();
void SaveMotionTouchValues();
void SaveHidbusValues();
void SaveIrCameraValues();
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp
index 26258d744..2f55159f5 100644
--- a/src/yuzu/configuration/configure_general.cpp
+++ b/src/yuzu/configuration/configure_general.cpp
@@ -40,6 +40,9 @@ void ConfigureGeneral::SetConfiguration() {
ui->toggle_user_on_boot->setChecked(UISettings::values.select_user_on_boot.GetValue());
ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue());
ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue());
+ ui->toggle_controller_applet_disabled->setEnabled(runtime_lock);
+ ui->toggle_controller_applet_disabled->setChecked(
+ UISettings::values.controller_applet_disabled.GetValue());
ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue());
ui->speed_limit->setValue(Settings::values.speed_limit.GetValue());
@@ -82,6 +85,8 @@ void ConfigureGeneral::ApplyConfiguration() {
UISettings::values.select_user_on_boot = ui->toggle_user_on_boot->isChecked();
UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked();
UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked();
+ UISettings::values.controller_applet_disabled =
+ ui->toggle_controller_applet_disabled->isChecked();
// Guard if during game and set to game-specific value
if (Settings::values.use_speed_limit.UsingGlobal()) {
@@ -128,6 +133,7 @@ void ConfigureGeneral::SetupPerGameUI() {
ui->toggle_user_on_boot->setVisible(false);
ui->toggle_background_pause->setVisible(false);
ui->toggle_hide_mouse->setVisible(false);
+ ui->toggle_controller_applet_disabled->setVisible(false);
ui->button_reset_defaults->setVisible(false);
diff --git a/src/yuzu/configuration/configure_general.ui b/src/yuzu/configuration/configure_general.ui
index 986a1625b..fe757d011 100644
--- a/src/yuzu/configuration/configure_general.ui
+++ b/src/yuzu/configuration/configure_general.ui
@@ -89,6 +89,13 @@
</property>
</widget>
</item>
+ <item>
+ <widget class="QCheckBox" name="toggle_controller_applet_disabled">
+ <property name="text">
+ <string>Disable controller applet</string>
+ </property>
+ </widget>
+ </item>
</layout>
</item>
</layout>
diff --git a/src/yuzu/configuration/configure_graphics.cpp b/src/yuzu/configuration/configure_graphics.cpp
index 78b487494..a4965524a 100644
--- a/src/yuzu/configuration/configure_graphics.cpp
+++ b/src/yuzu/configuration/configure_graphics.cpp
@@ -508,7 +508,7 @@ void ConfigureGraphics::RetrieveVulkanDevices() {
vulkan_devices.push_back(QString::fromStdString(record.name));
device_present_modes.push_back(record.vsync_support);
- if (record.is_intel_proprietary) {
+ if (record.has_broken_compute) {
expose_compute_option();
}
}
diff --git a/src/yuzu/configuration/configure_graphics_advanced.cpp b/src/yuzu/configuration/configure_graphics_advanced.cpp
index 0463ac8b9..c0a044767 100644
--- a/src/yuzu/configuration/configure_graphics_advanced.cpp
+++ b/src/yuzu/configuration/configure_graphics_advanced.cpp
@@ -43,6 +43,8 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
ui->enable_compute_pipelines_checkbox->setChecked(
Settings::values.enable_compute_pipelines.GetValue());
ui->use_video_framerate_checkbox->setChecked(Settings::values.use_video_framerate.GetValue());
+ ui->barrier_feedback_loops_checkbox->setChecked(
+ Settings::values.barrier_feedback_loops.GetValue());
if (Settings::IsConfiguringGlobal()) {
ui->gpu_accuracy->setCurrentIndex(
@@ -94,6 +96,9 @@ void ConfigureGraphicsAdvanced::ApplyConfiguration() {
enable_compute_pipelines);
ConfigurationShared::ApplyPerGameSetting(&Settings::values.use_video_framerate,
ui->use_video_framerate_checkbox, use_video_framerate);
+ ConfigurationShared::ApplyPerGameSetting(&Settings::values.barrier_feedback_loops,
+ ui->barrier_feedback_loops_checkbox,
+ barrier_feedback_loops);
}
void ConfigureGraphicsAdvanced::changeEvent(QEvent* event) {
@@ -130,6 +135,8 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() {
Settings::values.enable_compute_pipelines.UsingGlobal());
ui->use_video_framerate_checkbox->setEnabled(
Settings::values.use_video_framerate.UsingGlobal());
+ ui->barrier_feedback_loops_checkbox->setEnabled(
+ Settings::values.barrier_feedback_loops.UsingGlobal());
return;
}
@@ -157,6 +164,9 @@ void ConfigureGraphicsAdvanced::SetupPerGameUI() {
ConfigurationShared::SetColoredTristate(ui->use_video_framerate_checkbox,
Settings::values.use_video_framerate,
use_video_framerate);
+ ConfigurationShared::SetColoredTristate(ui->barrier_feedback_loops_checkbox,
+ Settings::values.barrier_feedback_loops,
+ barrier_feedback_loops);
ConfigurationShared::SetColoredComboBox(
ui->gpu_accuracy, ui->label_gpu_accuracy,
static_cast<int>(Settings::values.gpu_accuracy.GetValue(true)));
diff --git a/src/yuzu/configuration/configure_graphics_advanced.h b/src/yuzu/configuration/configure_graphics_advanced.h
index a4dc8ceb0..369a7c83e 100644
--- a/src/yuzu/configuration/configure_graphics_advanced.h
+++ b/src/yuzu/configuration/configure_graphics_advanced.h
@@ -48,6 +48,7 @@ private:
ConfigurationShared::CheckState use_vulkan_driver_pipeline_cache;
ConfigurationShared::CheckState enable_compute_pipelines;
ConfigurationShared::CheckState use_video_framerate;
+ ConfigurationShared::CheckState barrier_feedback_loops;
const Core::System& system;
};
diff --git a/src/yuzu/configuration/configure_graphics_advanced.ui b/src/yuzu/configuration/configure_graphics_advanced.ui
index e7f0ef6be..d527a6f38 100644
--- a/src/yuzu/configuration/configure_graphics_advanced.ui
+++ b/src/yuzu/configuration/configure_graphics_advanced.ui
@@ -202,6 +202,16 @@ Compute pipelines are always enabled on all other drivers.</string>
</widget>
</item>
<item>
+ <widget class="QCheckBox" name="barrier_feedback_loops_checkbox">
+ <property name="toolTip">
+ <string>Improves rendering of transparency effects in specific games.</string>
+ </property>
+ <property name="text">
+ <string>Barrier feedback loops</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<widget class="QWidget" name="af_layout" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_1">
<property name="leftMargin">
diff --git a/src/yuzu/configuration/configure_input_advanced.cpp b/src/yuzu/configuration/configure_input_advanced.cpp
index f13156434..3cfd5d439 100644
--- a/src/yuzu/configuration/configure_input_advanced.cpp
+++ b/src/yuzu/configuration/configure_input_advanced.cpp
@@ -129,9 +129,6 @@ void ConfigureInputAdvanced::ApplyConfiguration() {
Settings::values.mouse_enabled = ui->mouse_enabled->isChecked();
Settings::values.keyboard_enabled = ui->keyboard_enabled->isChecked();
Settings::values.emulate_analog_keyboard = ui->emulate_analog_keyboard->isChecked();
- Settings::values.mouse_panning = ui->mouse_panning->isChecked();
- Settings::values.mouse_panning_sensitivity =
- static_cast<float>(ui->mouse_panning_sensitivity->value());
Settings::values.touchscreen.enabled = ui->touchscreen_enabled->isChecked();
Settings::values.enable_raw_input = ui->enable_raw_input->isChecked();
Settings::values.enable_udp_controller = ui->enable_udp_controller->isChecked();
@@ -167,8 +164,6 @@ void ConfigureInputAdvanced::LoadConfiguration() {
ui->mouse_enabled->setChecked(Settings::values.mouse_enabled.GetValue());
ui->keyboard_enabled->setChecked(Settings::values.keyboard_enabled.GetValue());
ui->emulate_analog_keyboard->setChecked(Settings::values.emulate_analog_keyboard.GetValue());
- ui->mouse_panning->setChecked(Settings::values.mouse_panning.GetValue());
- ui->mouse_panning_sensitivity->setValue(Settings::values.mouse_panning_sensitivity.GetValue());
ui->touchscreen_enabled->setChecked(Settings::values.touchscreen.enabled);
ui->enable_raw_input->setChecked(Settings::values.enable_raw_input.GetValue());
ui->enable_udp_controller->setChecked(Settings::values.enable_udp_controller.GetValue());
@@ -197,8 +192,6 @@ void ConfigureInputAdvanced::RetranslateUI() {
void ConfigureInputAdvanced::UpdateUIEnabled() {
ui->debug_configure->setEnabled(ui->debug_enabled->isChecked());
ui->touchscreen_advanced->setEnabled(ui->touchscreen_enabled->isChecked());
- ui->mouse_panning->setEnabled(!ui->mouse_enabled->isChecked());
- ui->mouse_panning_sensitivity->setEnabled(!ui->mouse_enabled->isChecked());
ui->ring_controller_configure->setEnabled(ui->enable_ring_controller->isChecked());
#if QT_VERSION > QT_VERSION_CHECK(6, 0, 0) || !defined(YUZU_USE_QT_MULTIMEDIA)
ui->enable_ir_sensor->setEnabled(false);
diff --git a/src/yuzu/configuration/configure_input_advanced.ui b/src/yuzu/configuration/configure_input_advanced.ui
index 2e8b13660..2994d0ab4 100644
--- a/src/yuzu/configuration/configure_input_advanced.ui
+++ b/src/yuzu/configuration/configure_input_advanced.ui
@@ -2744,48 +2744,13 @@
</widget>
</item>
<item row="8" column="0">
- <widget class="QCheckBox" name="mouse_panning">
- <property name="minimumSize">
- <size>
- <width>0</width>
- <height>23</height>
- </size>
- </property>
- <property name="text">
- <string>Enable mouse panning</string>
- </property>
- </widget>
- </item>
- <item row="8" column="2">
- <widget class="QSpinBox" name="mouse_panning_sensitivity">
- <property name="toolTip">
- <string>Mouse sensitivity</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignCenter</set>
- </property>
- <property name="suffix">
- <string>%</string>
- </property>
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>100</number>
- </property>
- <property name="value">
- <number>100</number>
- </property>
- </widget>
- </item>
- <item row="9" column="0">
<widget class="QLabel" name="motion_touch">
<property name="text">
<string>Motion / Touch</string>
</property>
</widget>
</item>
- <item row="9" column="2">
+ <item row="8" column="2">
<widget class="QPushButton" name="buttonMotionTouch">
<property name="text">
<string>Configure</string>
diff --git a/src/yuzu/configuration/configure_input_player.cpp b/src/yuzu/configuration/configure_input_player.cpp
index 2c2e7e47b..576f5b571 100644
--- a/src/yuzu/configuration/configure_input_player.cpp
+++ b/src/yuzu/configuration/configure_input_player.cpp
@@ -23,6 +23,7 @@
#include "yuzu/configuration/config.h"
#include "yuzu/configuration/configure_input_player.h"
#include "yuzu/configuration/configure_input_player_widget.h"
+#include "yuzu/configuration/configure_mouse_panning.h"
#include "yuzu/configuration/input_profiles.h"
#include "yuzu/util/limitable_input_dialog.h"
@@ -711,6 +712,21 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
});
}
+ if (player_index_ == 0) {
+ connect(ui->mousePanningButton, &QPushButton::clicked, [this, input_subsystem_] {
+ const auto right_stick_param =
+ emulated_controller->GetStickParam(Settings::NativeAnalog::RStick);
+ ConfigureMousePanning dialog(this, input_subsystem_,
+ right_stick_param.Get("deadzone", 0.0f),
+ right_stick_param.Get("range", 1.0f));
+ if (dialog.exec() == QDialog::Accepted) {
+ dialog.ApplyConfiguration();
+ }
+ });
+ } else {
+ ui->mousePanningWidget->hide();
+ }
+
// Player Connected checkbox
connect(ui->groupConnectedController, &QGroupBox::toggled,
[this](bool checked) { emit Connected(checked); });
diff --git a/src/yuzu/configuration/configure_input_player.ui b/src/yuzu/configuration/configure_input_player.ui
index a9567c6ee..43f6c7b50 100644
--- a/src/yuzu/configuration/configure_input_player.ui
+++ b/src/yuzu/configuration/configure_input_player.ui
@@ -3048,6 +3048,102 @@
</item>
</layout>
</item>
+ <item>
+ <widget class="QWidget" name="mousePanningWidget" native="true">
+ <layout class="QHBoxLayout" name="mousePanningHorizontalLayout">
+ <property name="spacing">
+ <number>0</number>
+ </property>
+ <property name="leftMargin">
+ <number>0</number>
+ </property>
+ <property name="topMargin">
+ <number>0</number>
+ </property>
+ <property name="rightMargin">
+ <number>0</number>
+ </property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
+ <item>
+ <spacer name="mousePanningHorizontalSpacerLeft">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="mousePanningGroup">
+ <property name="title">
+ <string>Mouse panning</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <layout class="QVBoxLayout" name="mousePanningVerticalLayout">
+ <property name="spacing">
+ <number>3</number>
+ </property>
+ <property name="leftMargin">
+ <number>3</number>
+ </property>
+ <property name="topMargin">
+ <number>3</number>
+ </property>
+ <property name="rightMargin">
+ <number>3</number>
+ </property>
+ <property name="bottomMargin">
+ <number>3</number>
+ </property>
+ <item>
+ <widget class="QPushButton" name="mousePanningButton">
+ <property name="minimumSize">
+ <size>
+ <width>68</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>68</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">min-width: 68px;</string>
+ </property>
+ <property name="text">
+ <string>Configure</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <spacer name="mousePanningHorizontalSpacerRight">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
</item>
diff --git a/src/yuzu/configuration/configure_mouse_panning.cpp b/src/yuzu/configuration/configure_mouse_panning.cpp
new file mode 100644
index 000000000..f183d2740
--- /dev/null
+++ b/src/yuzu/configuration/configure_mouse_panning.cpp
@@ -0,0 +1,79 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <QCloseEvent>
+
+#include "common/settings.h"
+#include "ui_configure_mouse_panning.h"
+#include "yuzu/configuration/configure_mouse_panning.h"
+
+ConfigureMousePanning::ConfigureMousePanning(QWidget* parent,
+ InputCommon::InputSubsystem* input_subsystem_,
+ float right_stick_deadzone, float right_stick_range)
+ : QDialog(parent), input_subsystem{input_subsystem_},
+ ui(std::make_unique<Ui::ConfigureMousePanning>()) {
+ ui->setupUi(this);
+ SetConfiguration(right_stick_deadzone, right_stick_range);
+ ConnectEvents();
+}
+
+ConfigureMousePanning::~ConfigureMousePanning() = default;
+
+void ConfigureMousePanning::closeEvent(QCloseEvent* event) {
+ event->accept();
+}
+
+void ConfigureMousePanning::SetConfiguration(float right_stick_deadzone, float right_stick_range) {
+ ui->enable->setChecked(Settings::values.mouse_panning.GetValue());
+ ui->x_sensitivity->setValue(Settings::values.mouse_panning_x_sensitivity.GetValue());
+ ui->y_sensitivity->setValue(Settings::values.mouse_panning_y_sensitivity.GetValue());
+ ui->deadzone_x_counterweight->setValue(
+ Settings::values.mouse_panning_deadzone_x_counterweight.GetValue());
+ ui->deadzone_y_counterweight->setValue(
+ Settings::values.mouse_panning_deadzone_y_counterweight.GetValue());
+ ui->decay_strength->setValue(Settings::values.mouse_panning_decay_strength.GetValue());
+ ui->min_decay->setValue(Settings::values.mouse_panning_min_decay.GetValue());
+
+ if (right_stick_deadzone > 0.0f || right_stick_range != 1.0f) {
+ ui->warning_label->setText(QString::fromStdString(
+ "Mouse panning works better with a deadzone of 0% and a range of 100%.\n"
+ "Current values are " +
+ std::to_string(static_cast<int>(right_stick_deadzone * 100.0f)) + "% and " +
+ std::to_string(static_cast<int>(right_stick_range * 100.0f)) + "% respectively."));
+ } else {
+ ui->warning_label->hide();
+ }
+}
+
+void ConfigureMousePanning::SetDefaultConfiguration() {
+ ui->x_sensitivity->setValue(Settings::values.mouse_panning_x_sensitivity.GetDefault());
+ ui->y_sensitivity->setValue(Settings::values.mouse_panning_y_sensitivity.GetDefault());
+ ui->deadzone_x_counterweight->setValue(
+ Settings::values.mouse_panning_deadzone_x_counterweight.GetDefault());
+ ui->deadzone_y_counterweight->setValue(
+ Settings::values.mouse_panning_deadzone_y_counterweight.GetDefault());
+ ui->decay_strength->setValue(Settings::values.mouse_panning_decay_strength.GetDefault());
+ ui->min_decay->setValue(Settings::values.mouse_panning_min_decay.GetDefault());
+}
+
+void ConfigureMousePanning::ConnectEvents() {
+ connect(ui->default_button, &QPushButton::clicked, this,
+ &ConfigureMousePanning::SetDefaultConfiguration);
+ connect(ui->button_box, &QDialogButtonBox::accepted, this,
+ &ConfigureMousePanning::ApplyConfiguration);
+ connect(ui->button_box, &QDialogButtonBox::rejected, this, [this] { reject(); });
+}
+
+void ConfigureMousePanning::ApplyConfiguration() {
+ Settings::values.mouse_panning = ui->enable->isChecked();
+ Settings::values.mouse_panning_x_sensitivity = static_cast<float>(ui->x_sensitivity->value());
+ Settings::values.mouse_panning_y_sensitivity = static_cast<float>(ui->y_sensitivity->value());
+ Settings::values.mouse_panning_deadzone_x_counterweight =
+ static_cast<float>(ui->deadzone_x_counterweight->value());
+ Settings::values.mouse_panning_deadzone_y_counterweight =
+ static_cast<float>(ui->deadzone_y_counterweight->value());
+ Settings::values.mouse_panning_decay_strength = static_cast<float>(ui->decay_strength->value());
+ Settings::values.mouse_panning_min_decay = static_cast<float>(ui->min_decay->value());
+
+ accept();
+}
diff --git a/src/yuzu/configuration/configure_mouse_panning.h b/src/yuzu/configuration/configure_mouse_panning.h
new file mode 100644
index 000000000..08c6e1f62
--- /dev/null
+++ b/src/yuzu/configuration/configure_mouse_panning.h
@@ -0,0 +1,35 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <memory>
+#include <QDialog>
+
+namespace InputCommon {
+class InputSubsystem;
+}
+
+namespace Ui {
+class ConfigureMousePanning;
+}
+
+class ConfigureMousePanning : public QDialog {
+ Q_OBJECT
+public:
+ explicit ConfigureMousePanning(QWidget* parent, InputCommon::InputSubsystem* input_subsystem_,
+ float right_stick_deadzone, float right_stick_range);
+ ~ConfigureMousePanning() override;
+
+public slots:
+ void ApplyConfiguration();
+
+private:
+ void closeEvent(QCloseEvent* event) override;
+ void SetConfiguration(float right_stick_deadzone, float right_stick_range);
+ void SetDefaultConfiguration();
+ void ConnectEvents();
+
+ InputCommon::InputSubsystem* input_subsystem;
+ std::unique_ptr<Ui::ConfigureMousePanning> ui;
+};
diff --git a/src/yuzu/configuration/configure_mouse_panning.ui b/src/yuzu/configuration/configure_mouse_panning.ui
new file mode 100644
index 000000000..75795b727
--- /dev/null
+++ b/src/yuzu/configuration/configure_mouse_panning.ui
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ConfigureMousePanning</class>
+ <widget class="QDialog" name="configure_mouse_panning">
+ <property name="windowTitle">
+ <string>Configure mouse panning</string>
+ </property>
+ <layout class="QVBoxLayout">
+ <item>
+ <widget class="QCheckBox" name="enable">
+ <property name="text">
+ <string>Enable</string>
+ </property>
+ <property name="toolTip">
+ <string>Can be toggled via a hotkey</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QGroupBox" name="sensitivity_box">
+ <property name="title">
+ <string>Sensitivity</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="x_sensitivity_label">
+ <property name="text">
+ <string>Horizontal</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="x_sensitivity">
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="y_sensitivity_label">
+ <property name="text">
+ <string>Vertical</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="y_sensitivity">
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>1</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>50</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="deadzone_counterweight_box">
+ <property name="title">
+ <string>Deadzone counterweight</string>
+ </property>
+ <property name="toolTip">
+ <string>Counteracts a game's built-in deadzone</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="deadzone_x_counterweight_label">
+ <property name="text">
+ <string>Horizontal</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="deadzone_x_counterweight">
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="deadzone_y_counterweight_label">
+ <property name="text">
+ <string>Vertical</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="deadzone_y_counterweight">
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>0</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="decay_box">
+ <property name="title">
+ <string>Stick decay</string>
+ </property>
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="decay_strength_label">
+ <property name="text">
+ <string>Strength</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QSpinBox" name="decay_strength">
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>22</number>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QLabel" name="min_decay_label">
+ <property name="text">
+ <string>Minimum</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1">
+ <widget class="QSpinBox" name="min_decay">
+ <property name="alignment">
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="suffix">
+ <string>%</string>
+ </property>
+ <property name="minimum">
+ <number>0</number>
+ </property>
+ <property name="maximum">
+ <number>100</number>
+ </property>
+ <property name="value">
+ <number>5</number>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QLabel" name="warning_label">
+ <property name="text">
+ <string/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout">
+ <item>
+ <widget class="QPushButton" name="default_button">
+ <property name="text">
+ <string>Default</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="button_box">
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/yuzu/configuration/configure_ringcon.cpp b/src/yuzu/configuration/configure_ringcon.cpp
index 71afbc423..f83705544 100644
--- a/src/yuzu/configuration/configure_ringcon.cpp
+++ b/src/yuzu/configuration/configure_ringcon.cpp
@@ -305,6 +305,9 @@ void ConfigureRingController::EnableRingController() {
QMessageBox::warning(this, dialog_title,
tr("The current mapped device doesn't have a ring attached"));
break;
+ case Common::Input::DriverResult::InvalidHandle:
+ QMessageBox::warning(this, dialog_title, tr("The current mapped device is not connected"));
+ break;
default:
QMessageBox::warning(this, dialog_title,
tr("Unexpected driver result %1").arg(static_cast<int>(result)));
diff --git a/src/yuzu/configuration/configure_ringcon.ui b/src/yuzu/configuration/configure_ringcon.ui
index 514dff372..38ecccc3d 100644
--- a/src/yuzu/configuration/configure_ringcon.ui
+++ b/src/yuzu/configuration/configure_ringcon.ui
@@ -23,7 +23,7 @@
</size>
</property>
<property name="text">
- <string>If you want to use this controller configure player 1 as right controller and player 2 as dual joycon before starting the game to allow this controller to be detected properly.</string>
+ <string>To use Ring-Con, configure player 1 as right Joy-Con (both physical and emulated), and player 2 as left Joy-Con (left physical and dual emulated) before starting the game.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index 8768a7c3c..e8418b302 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -447,6 +447,14 @@ GMainWindow::GMainWindow(std::unique_ptr<Config> config_, bool has_broken_vulkan
#if defined(HAVE_SDL2) && !defined(_WIN32)
SDL_InitSubSystem(SDL_INIT_VIDEO);
+
+ // Set a screensaver inhibition reason string. Currently passed to DBus by SDL and visible to
+ // the user through their desktop environment.
+ //: TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the
+ //: computer from sleeping
+ QByteArray wakelock_reason = tr("Running a game").toLatin1();
+ SDL_SetHint(SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME, wakelock_reason.data());
+
// SDL disables the screen saver by default, and setting the hint
// SDL_HINT_VIDEO_ALLOW_SCREENSAVER doesn't seem to work, so we just enable the screen saver
// for now.
@@ -1623,45 +1631,6 @@ void GMainWindow::OnPrepareForSleep(bool prepare_sleep) {
}
#ifdef __unix__
-static std::optional<QDBusObjectPath> HoldWakeLockLinux(u32 window_id = 0) {
- if (!QDBusConnection::sessionBus().isConnected()) {
- return {};
- }
- // reference: https://flatpak.github.io/xdg-desktop-portal/#gdbus-org.freedesktop.portal.Inhibit
- QDBusInterface xdp(QString::fromLatin1("org.freedesktop.portal.Desktop"),
- QString::fromLatin1("/org/freedesktop/portal/desktop"),
- QString::fromLatin1("org.freedesktop.portal.Inhibit"));
- if (!xdp.isValid()) {
- LOG_WARNING(Frontend, "Couldn't connect to XDP D-Bus endpoint");
- return {};
- }
- QVariantMap options = {};
- //: TRANSLATORS: This string is shown to the user to explain why yuzu needs to prevent the
- //: computer from sleeping
- options.insert(QString::fromLatin1("reason"),
- QCoreApplication::translate("GMainWindow", "yuzu is running a game"));
- // 0x4: Suspend lock; 0x8: Idle lock
- QDBusReply<QDBusObjectPath> reply =
- xdp.call(QString::fromLatin1("Inhibit"),
- QString::fromLatin1("x11:") + QString::number(window_id, 16), 12U, options);
-
- if (reply.isValid()) {
- return reply.value();
- }
- LOG_WARNING(Frontend, "Couldn't read Inhibit reply from XDP: {}",
- reply.error().message().toStdString());
- return {};
-}
-
-static void ReleaseWakeLockLinux(QDBusObjectPath lock) {
- if (!QDBusConnection::sessionBus().isConnected()) {
- return;
- }
- QDBusInterface unlocker(QString::fromLatin1("org.freedesktop.portal.Desktop"), lock.path(),
- QString::fromLatin1("org.freedesktop.portal.Request"));
- unlocker.call(QString::fromLatin1("Close"));
-}
-
std::array<int, 3> GMainWindow::sig_interrupt_fds{0, 0, 0};
void GMainWindow::SetupSigInterrupts() {
@@ -1714,12 +1683,6 @@ void GMainWindow::PreventOSSleep() {
SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);
#elif defined(HAVE_SDL2)
SDL_DisableScreenSaver();
-#ifdef __unix__
- auto reply = HoldWakeLockLinux(winId());
- if (reply) {
- wake_lock = std::move(reply.value());
- }
-#endif
#endif
}
@@ -1728,11 +1691,6 @@ void GMainWindow::AllowOSSleep() {
SetThreadExecutionState(ES_CONTINUOUS);
#elif defined(HAVE_SDL2)
SDL_EnableScreenSaver();
-#ifdef __unix__
- if (!wake_lock.path().isEmpty()) {
- ReleaseWakeLockLinux(wake_lock);
- }
-#endif
#endif
}
@@ -1749,15 +1707,17 @@ bool GMainWindow::LoadROM(const QString& filename, u64 program_id, std::size_t p
system->SetFilesystem(vfs);
system->SetAppletFrontendSet({
- std::make_unique<QtAmiiboSettings>(*this), // Amiibo Settings
- std::make_unique<QtControllerSelector>(*this), // Controller Selector
- std::make_unique<QtErrorDisplay>(*this), // Error Display
- nullptr, // Mii Editor
- nullptr, // Parental Controls
- nullptr, // Photo Viewer
- std::make_unique<QtProfileSelector>(*this), // Profile Selector
- std::make_unique<QtSoftwareKeyboard>(*this), // Software Keyboard
- std::make_unique<QtWebBrowser>(*this), // Web Browser
+ std::make_unique<QtAmiiboSettings>(*this), // Amiibo Settings
+ (UISettings::values.controller_applet_disabled.GetValue() == true)
+ ? nullptr
+ : std::make_unique<QtControllerSelector>(*this), // Controller Selector
+ std::make_unique<QtErrorDisplay>(*this), // Error Display
+ nullptr, // Mii Editor
+ nullptr, // Parental Controls
+ nullptr, // Photo Viewer
+ std::make_unique<QtProfileSelector>(*this), // Profile Selector
+ std::make_unique<QtSoftwareKeyboard>(*this), // Software Keyboard
+ std::make_unique<QtWebBrowser>(*this), // Web Browser
});
const Core::SystemResultStatus result{
@@ -3840,7 +3800,7 @@ void GMainWindow::OnLoadAmiibo() {
auto* virtual_amiibo = input_subsystem->GetVirtualAmiibo();
// Remove amiibo if one is connected
- if (virtual_amiibo->GetCurrentState() == InputCommon::VirtualAmiibo::State::AmiiboIsOpen) {
+ if (virtual_amiibo->GetCurrentState() == InputCommon::VirtualAmiibo::State::TagNearby) {
virtual_amiibo->CloseAmiibo();
QMessageBox::warning(this, tr("Amiibo"), tr("The current amiibo has been removed"));
return;
@@ -3868,7 +3828,7 @@ void GMainWindow::LoadAmiibo(const QString& filename) {
auto* virtual_amiibo = input_subsystem->GetVirtualAmiibo();
const QString title = tr("Error loading Amiibo data");
// Remove amiibo if one is connected
- if (virtual_amiibo->GetCurrentState() == InputCommon::VirtualAmiibo::State::AmiiboIsOpen) {
+ if (virtual_amiibo->GetCurrentState() == InputCommon::VirtualAmiibo::State::TagNearby) {
virtual_amiibo->CloseAmiibo();
QMessageBox::warning(this, tr("Amiibo"), tr("The current amiibo has been removed"));
return;
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index e0e775d87..2cfb96257 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -504,8 +504,6 @@ private:
#ifdef __unix__
QSocketNotifier* sig_interrupt_notifier;
static std::array<int, 3> sig_interrupt_fds;
-
- QDBusObjectPath wake_lock{};
#endif
protected:
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index db43b7033..20a517d34 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -77,6 +77,8 @@ struct Values {
Settings::Setting<bool> pause_when_in_background{false, "pauseWhenInBackground"};
Settings::Setting<bool> mute_when_in_background{false, "muteWhenInBackground"};
Settings::Setting<bool> hide_mouse{true, "hideInactiveMouse"};
+ Settings::Setting<bool> controller_applet_disabled{false, "disableControllerApplet"};
+
// Set when Vulkan is known to crash the application
bool has_broken_vulkan = false;
diff --git a/src/yuzu/vk_device_info.cpp b/src/yuzu/vk_device_info.cpp
index 9bd1ec686..7c26a3dc7 100644
--- a/src/yuzu/vk_device_info.cpp
+++ b/src/yuzu/vk_device_info.cpp
@@ -5,10 +5,12 @@
#include <vector>
#include "common/dynamic_library.h"
#include "common/logging/log.h"
+#include "video_core/vulkan_common/vulkan_device.h"
#include "video_core/vulkan_common/vulkan_instance.h"
#include "video_core/vulkan_common/vulkan_library.h"
#include "video_core/vulkan_common/vulkan_surface.h"
#include "video_core/vulkan_common/vulkan_wrapper.h"
+#include "vulkan/vulkan_core.h"
#include "yuzu/qt_common.h"
#include "yuzu/vk_device_info.h"
@@ -16,8 +18,8 @@ class QWindow;
namespace VkDeviceInfo {
Record::Record(std::string_view name_, const std::vector<VkPresentModeKHR>& vsync_modes_,
- bool is_intel_proprietary_)
- : name{name_}, vsync_support{vsync_modes_}, is_intel_proprietary{is_intel_proprietary_} {}
+ bool has_broken_compute_)
+ : name{name_}, vsync_support{vsync_modes_}, has_broken_compute{has_broken_compute_} {}
Record::~Record() = default;
@@ -48,9 +50,10 @@ void PopulateRecords(std::vector<Record>& records, QWindow* window) try {
properties.pNext = &driver_properties;
dld.vkGetPhysicalDeviceProperties2(physical_device, &properties);
- records.push_back(VkDeviceInfo::Record(name, present_modes,
- driver_properties.driverID ==
- VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS));
+ bool has_broken_compute{Vulkan::Device::CheckBrokenCompute(
+ driver_properties.driverID, properties.properties.driverVersion)};
+
+ records.push_back(VkDeviceInfo::Record(name, present_modes, has_broken_compute));
}
} catch (const Vulkan::vk::Exception& exception) {
LOG_ERROR(Frontend, "Failed to enumerate devices with error: {}", exception.what());
diff --git a/src/yuzu/vk_device_info.h b/src/yuzu/vk_device_info.h
index 5a6c64416..bda8262f4 100644
--- a/src/yuzu/vk_device_info.h
+++ b/src/yuzu/vk_device_info.h
@@ -24,12 +24,12 @@ namespace VkDeviceInfo {
class Record {
public:
explicit Record(std::string_view name, const std::vector<VkPresentModeKHR>& vsync_modes,
- bool is_intel_proprietary);
+ bool has_broken_compute);
~Record();
const std::string name;
const std::vector<VkPresentModeKHR> vsync_support;
- const bool is_intel_proprietary;
+ const bool has_broken_compute;
};
void PopulateRecords(std::vector<Record>& records, QWindow* window);
diff --git a/src/yuzu_cmd/default_ini.h b/src/yuzu_cmd/default_ini.h
index 911d461e4..119e22183 100644
--- a/src/yuzu_cmd/default_ini.h
+++ b/src/yuzu_cmd/default_ini.h
@@ -140,9 +140,29 @@ udp_input_servers =
# 0 (default): Off, 1: On
mouse_panning =
-# Set mouse sensitivity.
-# Default: 1.0
-mouse_panning_sensitivity =
+# Set mouse panning horizontal sensitivity.
+# Default: 50.0
+mouse_panning_x_sensitivity =
+
+# Set mouse panning vertical sensitivity.
+# Default: 50.0
+mouse_panning_y_sensitivity =
+
+# Set mouse panning deadzone horizontal counterweight.
+# Default: 0.0
+mouse_panning_deadzone_x_counterweight =
+
+# Set mouse panning deadzone vertical counterweight.
+# Default: 0.0
+mouse_panning_deadzone_y_counterweight =
+
+# Set mouse panning stick decay strength.
+# Default: 22.0
+mouse_panning_decay_strength =
+
+# Set mouse panning stick minimum decay.
+# Default: 5.0
+mouse_panning_minimum_decay =
# Emulate an analog control stick from keyboard inputs.
# 0 (default): Disabled, 1: Enabled